关于向上兼容开发及可自由组合模块的实现的探讨

tianlon 2005-03-27 11:21:01

http://community.csdn.net/Expert/TopicView1.asp?id=3884804
...全文
210 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
meidengyin 2005-04-21
  • 打赏
  • 举报
回复
Remark
DragonLancer 2005-04-09
  • 打赏
  • 举报
回复
不懂,最好能给出一个具体点的例子大家讨论,否则真的不知所云
tianlon 2005-04-06
  • 打赏
  • 举报
回复
to showerXP(小阿!) :
------这个问题就需要剥离出一“服务层”来专门处理。
服务层一般用在同种类型模块的支持,不同类型好像还不行,不过变通的方法:
采用类似驱动程序层的,对每种不同的类型建立一个抽象模块,定义一个接口(单个接口相当于上面的服务层),每个接口下面是具体的组件实现(内部可自由装配,但实际上一般只有一个在用,好像有点像工厂),但问题仍然存在:各个接口之间如何自适应(感知),且如何实现各接口间的自由组合??


欢迎各位继续!!!
changkong2004 2005-04-06
  • 打赏
  • 举报
回复
支持~~
想法很好,但是具体实现困难哦~~
tianlon 2005-04-06
  • 打赏
  • 举报
回复
to changkong2004(长空) :
有什么想法也可以说嘛
tianlon 2005-04-06
  • 打赏
  • 举报
回复
谢谢 showerXP(小阿!) ,XACZ(??) 参与
其实我也知道实现起来很困难,通过讨论展开思路也是其中的一个目的
XACZ 2005-04-05
  • 打赏
  • 举报
回复
如果在原来设计中压根就没考虑到有F出现,原来的设计架构根本就不知道F怎么工作,怎么表现,这样的话程序再向上兼容也没用,要将F融合到原系统,不改造其他模块或者整个系统架构好象不太可能,就好象现在的WINDOWS为什么使用NT核心,不使用WIN98为基础来扩展一样。
我觉的,设计时候不仅仅类要单一职责,其他如模块、包等等都要功能内聚,且为将来可能出现的模块定义一套扩展机制,并定义接口,插件扩展就是一个例子。
showerXP 2005-04-04
  • 打赏
  • 举报
回复
"因为其重心不在模块,而在自由组合上与感知上(感知能力越强则向上兼容能力越强)"

这个问题就需要剥离出一“服务层”来专门处理。
就像国内现在流行的这样一种技术:
在无线网络设备连接的问题。有很多种技术(比如红外,蓝牙,IEEE802.11等等),运用很多协议的不同设备互联。专门抽象出一层服务层,来处理采用同设备连接,来协调不同协议的工作流程。

showerXP 2005-04-01
  • 打赏
  • 举报
回复
第一、二个问题都可以做成构件系统。corba,ejb老一些的com,com+,dcom这些技术都是用来对付这种问题。

随着时间的发展,对系统的认识、要求肯定也会不同。至于能不能模块自动感知就难说了。特别是你要向上兼容。
tianlon 2005-04-01
  • 打赏
  • 举报
回复
谢谢showerXP(小阿!) 参与
但:
corba, com等好像并不能解决这些问题,
因为其重心不在模块,而在自由组合上与感知上(感知能力越强则向上兼容能力越强)

tianlon 2005-03-29
  • 打赏
  • 举报
回复
没有人感兴趣?
zhuma 2005-03-27
  • 打赏
  • 举报
回复
!!!注意以后把原问题全文粘上 不要只放链接

————————————————————————————

几年前发过一个类似的贴子,颇有收获,故地重游,特备1000分,不求能够彻底实现,但希望在探讨的过程中,能产生一些有用的东些,就达到目的了。

比如现有系统有5个模块,A,B,C,D,E现在产生第6个模块F,则按一般的处理方式F内部会针对A,B,C,D,E都有相应的代码,但也仅是单向的,很多情况下,不改造A,B,C,D,E是无法实现功能的,就这个问题,如何作可以使A,B,C,D,E自动适应F。

第二个问题:自由组合模块的实现,其实和第一个问题有很多类似的东西,具体而言:
如系统有10个模块A,B,C,D,E,F,G,H,I,J 如何使这些模块可以自由组合,当然也是在可行的前提下,比如A是基础模块,不可缺的等等,一般的做法是有一张当前配置表和一张模块约束表,根据约束表,和客户的配置形成配置表,这都没问题,可是实现起来,比处在程序里面考虑当前模块和其他模块组合的可能性,对于模块数很少的软件没问题,但对于大型软件(数十个模块)就会变得很繁琐(可能是一个不小的组合数量级),有简单的方法吗?而且这种处理方式,如果再加新模块(问题1了),也不能使其能很好的和新模块融合。

对于模块自动感知(对新加入模块的发现),可以考虑采用广播或责任链实现,但是处理还没想好
oyljerry 2005-03-27
  • 打赏
  • 举报
回复
尽量使F的功能在内部实现,需要别的功能,通过继承等来实现和扩展,降低修改原来模块的可能性

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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