![]() |
1
1
把类本身看作设备。这里的主要好处是能够重用一次编写的代码—例如,您的所有设备都有地址,它们可以连接、测试连接、断开连接—为什么不在一个抽象的“设备”类中使用这些代码,并使所有设备从中继承?
现在,由于接口拥有与之接口的设备的知识,它必须在其构造函数中包含这些设备(在面向对象设计中,也称为依赖项注入,更具体地说,这里是构造函数注入):
基本上,如果你的设备在“现实生活”中相互作用,那就意味着它们应该有一个相互连接的设备的引用。例如,如果您将PowerSupply直接插入到logger,那么PowerSupply类应该有对logger的引用。但是,如果它连接到接口,然后再连接到记录器,那么电源必须只引用接口而不是记录器(因为它没有连接到它)。
当你掌握了这一点,你的程序将真正受益于某种控制反转(IoC)模式——这样你就可以在一开始就定义什么是记录器,什么是电源,谁是显示器,什么时候有人需要某个特定的设备,IoC容器就会提供它。这样你就不必每次城里有新设备的时候都重写代码——只要用IoC容器注册新类型,一切就都正常了。 |
![]() |
2
1
|
![]() |
3
1
一种方法是创建一个复合类,其中包含powersupply类和GPIB类的实例(对于C#很抱歉):
|
![]() |
Mear1628 · vb.net从随机选择的端口号接收UDP 5 月前 |
![]() |
user1946932 · .Net正则表达式在所有字符前添加空格 6 月前 |
![]() |
user1946932 · 正则表达式:删除连续两个以上的<br>? 10 月前 |
![]() |
Josh · 通过反思访问孩子的财产 10 月前 |
![]() |
Khu RJ · 更新网格中的单元格-DevExpress网格控件 11 月前 |
![]() |
Mick · VB.NET Regex。替换不起作用(数组未更新) 12 月前 |