用一个类库封装两个类库,实现选择使用其中的一个类库

ztmsimon 2014-06-25 03:16:35
现在我有两个电源设备,对于每个设备我都封装了一个类库,并且库中的方法也都是一样的,就是读取设备名、读取电流,我现在想用一个类库将这两个设备类库都封装起来,并且通过读取设备名称来判断使用的是哪个设备,然后读取电流的时候就直接读取就行了,这样上位机软件就更加方便,只需实例化我最后封装的那个类库即可,就不用做任何判断,如果后续还要添加设备也方便。但是不知道该如何进行封装。
...全文
244 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
红衣老大 2014-06-26
  • 打赏
  • 举报
回复
引用 3 楼 ztmsimon 的回复:
不应该只是单纯的是继承吧,一个类只能继承一个基类的,但是我上面的那个类要包含下面的两个类啊?
引用 5 楼 sp1234 的回复:
面向对象的程序往往总是这样设计的:
var x = new 我的自定义的电流传感器(); 
画设备做功图(x);
显然,”画设备做功图“这个方法早就在大系统中设计好了,大多数程序员甚至根本看不到其源代码。但是程序员可以自己定义新的电流设备子类,重写(override)一些关键处理方法,然后把这个子类对象送到原来的大系统里去进行做功分析处理。 这里,程序员可以定义无数种电流设备子类,也可以选择你提供的两种预先提供的两种之一。而其它大系统的处理,是基于电流设备的通用接口(从设计意义上,此时我们把父类也叫做接口)而设计的流程,早先设计的程序将来不用重新编译、不用判断、添加子类还方便(因为根本不管子类类型)。
看到 呵呵 没,其实你理解错了 我以前也这样 不是你的类包含其他2个,而是 你的2个类,被他们共同的 父类包含了。
红衣老大 2014-06-26
  • 打赏
  • 举报
回复
发现最近 你们2个 同时出现的 概率很高啊,有什么问题? sp1234 都是从理论上讲述 caozhy 直接给出解决举例
bcrun 2014-06-26
  • 打赏
  • 举报
回复
楼主你好像说的是两个类都实现同一个接口吧。
ztmsimon 2014-06-26
  • 打赏
  • 举报
回复
我现在定义了接口,再分别用两个不同的设备去继承接口,再用一个类库来调用接口并实例其中一个设备就可以了~ 谢谢大神们给我的指导~感谢大家!!
threenewbee 2014-06-25
  • 打赏
  • 举报
回复
最简单的,主程序定义一个接口: interface IPwrEq { double Read(); } 编写两个dll,都引用主程序,并且实现接口: public class A : IPwrEq { public double Read() { ... } } 比如叫A.dll 另一个dll类似。 然后主程序通过反射调用: string lib = "A"; Assembly asm = Assembly.LoadFrom(lib + ".dll"); IPwrEq pe = asm.CreateInstance("A") as IPwrEq; pe.Read(); ...
  • 打赏
  • 举报
回复
面向对象的程序往往总是这样设计的:
var x = new 我的自定义的电流传感器(); 
画设备做功图(x);
显然,”画设备做功图“这个方法早就在大系统中设计好了,大多数程序员甚至根本看不到其源代码。但是程序员可以自己定义新的电流设备子类,重写(override)一些关键处理方法,然后把这个子类对象送到原来的大系统里去进行做功分析处理。 这里,程序员可以定义无数种电流设备子类,也可以选择你提供的两种预先提供的两种之一。而其它大系统的处理,是基于电流设备的通用接口(从设计意义上,此时我们把父类也叫做接口)而设计的流程,早先设计的程序将来不用重新编译、不用判断、添加子类还方便(因为根本不管子类类型)。
  • 打赏
  • 举报
回复
”包含“?呵呵。 如果继续扩展第三个、第四个、第五个......呢?如果每一个都是扩展的一点东西有点不一样(多出来的功能,或者重写实现方法),其它的没有变化呢? 其实这就是面向对象设计的初衷,用户只需要new一个子类对象实例,而可以多态地按照(父类或者直接就是父)接口去操作。只是你不理解而已。
ztmsimon 2014-06-25
  • 打赏
  • 举报
回复
不应该只是单纯的是继承吧,一个类只能继承一个基类的,但是我上面的那个类要包含下面的两个类啊?
wanghui0380 2014-06-25
  • 打赏
  • 举报
回复
google"MEF ImportMany 元数据" 当然这首先需要你有一个抽象类,或者接口存在
红衣老大 2014-06-25
  • 打赏
  • 举报
回复
这不是应该继承么?

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧