关于多态的一点实际问题,各位老大帮忙看看

w5588660 2010-10-09 07:15:48
现在我在开发一卡通,有A,B,C三家的硬件合作商,以后可能会更多,为了以后的拓展性,现在打算把接口那一块做成多态的。
想法1:用抽象工厂+反射+配置文件的方式,在APP.CONFIG里写上要加载的程序集名字,到时根据要用的硬件加载不用的程序集.
不过有人说用反射的话影响效率,请问各位兄弟碰到这样的情况是用什么好点的办法解决的!
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcliang2004 2010-10-11
  • 打赏
  • 举报
回复
用適配器模式
[Quote=引用 1 楼 w5588660 的回复:]
问题补充,各合作商提供的硬件接口传的参数也不一样,比如A家的开打连接是OpenCommPort(int x, intY),B家的开打连接是Open(int J, intK,int L),这样的话杨总怎么做到兼容?
[/Quote]
机器人 2010-10-09
  • 打赏
  • 举报
回复
针对你的补充问题:既然是定义接口,那么方法定义就应该统一呀。
一人一个样,还有什么定义接口的必要呢?
直接在配置文件里连启动方法名,参数都配置进去好了。
  • 打赏
  • 举报
回复
[Quote=引用楼主 w5588660 的回复:]
现在我在开发一卡通,有A,B,C三家的硬件合作商,以后可能会更多,为了以后的拓展性,现在打算把接口那一块做成多态的。
想法1:用抽象工厂+反射+配置文件的方式,在APP.CONFIG里写上要加载的程序集名字,到时根据要用的硬件加载不用的程序集.
不过有人说用反射的话影响效率,请问各位兄弟碰到这样的情况是用什么好点的办法解决的!
[/Quote]

影响多少你总要问问吧。如果对速度差别说得离谱,你还能认为这种“影响”靠谱吗?

假设你的代码需要运行1小时,这种反射一下符合接口的实力的代码(只需要一次)需要10毫秒,你认为10毫秒相比1小时,值几分钱成本?而能达到的功能值多少万?
w5588660 2010-10-09
  • 打赏
  • 举报
回复
问题补充,各合作商提供的硬件接口传的参数也不一样,比如A家的开打连接是OpenCommPort(int x, intY),B家的开打连接是Open(int J, intK,int L),这样的话杨总怎么做到兼容?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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