我一般都是C#或OOP的新手,并且想知道接下来是否可以继承:
我想设置一个通信链接,并希望能够使用udp或串行通信.所以我用方法.open,.close,.send,.receive定义了一个抽象基类'Link'.从这个基类我得到2个类'LinkUdp'和'LinkSerial'并覆盖4个方法
现在是否可以直接将带有对象的代码写入'Link'类?我的意思是:
链接myLink = new Link("10.0.0.1"); //现在编译器知道使用LinkUdp类
链接myLink = new Link("COM1"); //编译器知道使用LinkSerial类
或者我必须写我的代码专用,如:
LinkUdp myLink = new LinkUdp("10.0.0.1");
希望这很清楚......谢谢
编辑:我想使用'链接'类,所以我可以将对象传递给子类,而不必编写2个不同的实现:所以在此之后,我有一个类
CommunicationHandler myComm = new CommunicationHandler(myLink);
然后这个处理程序不必担心我使用udp或serial ...
没有类的构造函数只能返回该类的类型.您也可以使用静态创建功能(工厂模式):
Link myLink = Link.Create("10.0.0.1");
Run Code Online (Sandbox Code Playgroud)
例如
public static Link Create(string something)
{
if (//determine that "something" is an IP address))
return new LinkUdp(something);
else
return new LinkSerial(something);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |