【转】面向组件的大规模软件架构
http://www.ibm.com/developerworks/cn/linux/software_engineering/l-frmwk/index5.html
?
在中小规模的软件中,对象和对象之间的协作关系就能够满足需要。但是当软件规模扩大,复杂度上升的时候,面向对象技术强调的协作却表现出另一个极端的特点-耦合度太高导致的复杂度。这时候就需要有一种新的方法来弥补面向对象技术的弱点。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
回页首
?
回页首
?
回页首
?
?
如上图所示,一个普通的接口通过适配器模式转换成和特定技术相关的服务。在JMX技术中,也采用这种方式,JMX平台能够将一个普通的服务端口通过适配器进行转换,以适用于各种的协议,例如http、sock、snmp等等。
在上图中,我们看到一个普通的用户注册服务通过AOP可以动态的添加各种各样的能力。AOP提供了几个好处,一是能够通过简单的代码为所有的服务添加功能,而不用为每个服务编写代码,从而大大节省了代码量;二是把横切点分离出来,这样服务仅保留了核心的代码,提高了系统的模块化程度;最后一点是模块化的增加使得为服务动态的增加或删除功能成为可能,例如,可以通过配置动态的将新的Aspect添加到用户注册服务上。
回页首
?
?
林星,致力于研究敏捷理论和优秀的软件设计思想,并将之应用于国内的软件组织。可以通过 iamlinx@21cn.com和他联系,也可以通过访问 www.qca.cn和 www.aglichina.org来获得更多的信息。