假设窗体画面,有一个终端列表,和一个结果列表。选择一个终端终端,执行读操作,结果列表根据已经定义好的解析方式显示读出的结果,有以下需求。
1:通讯方式(串口,modem,tcp/ip)
2:通讯协议(协议1,协议2,...)我希望窗体程序代码类似下面,同时支持上面不同的通讯方式和协议
Communication:TCommunication;
Protocal:TProtocal;
SendFrame,RecvFrame:String;Communication.Open();
SendData := Protocal.GetSendFrame();
Comnumication.SendData(SendFrame);
RecvFrame :=Comnumication.RecvData();
if Protocal.CheckRecvFrame(RecvFrame) then begin
    //根据定义的显示方式显示结果
end;
Communication.Close();
其中通讯方式的部分可以使用工厂模式来设计。现在的问题是不同的协议的GetSendFrame()方法的参数数目和类型可能是不一样的。应该用什么设计模式来设计通讯协议这部分呢