teamlet

构客网首页  博客  论坛

 
  SOA我有话说
  本文的标签
SOA博客大赢家 (收录528篇)SOA时代程序人生 (收录81篇)组件 (收录5篇)
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(53 篇)
我的文章(52 篇)
  按月归档
2007年-06月(7 篇)
2007年-10月(17 篇)
2008年-01月(28 篇)
2008年-11月(1 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

向对象开发与面向组件开发的区别

发布时间:2007年12月27日 作者:teamlet

阅读次数:1859次 类别:我的文章 永久链接 Trackback 1条评论
参加SOA我有话说

通过对SOASCA、OSGi、JPF等面向组件理论和技术的理解,整理一篇面向对象开发与面向组件开发的区别

1、面向对象中,对象之间的交互是细粒度的,通过单个消息进行交互;
面向组件中组件的交互是通过接口连接进行交互,接口内含有多个消息,接口不同则需要适配。
比如,信件一封一封的送,是对象之间的交互,信件一次性送完是组件交互。

2、组件的粒度比对象要大,在面向对象系统设计中,对象是构建系统的基本建筑材料;面向组件系统开发中,组件是系统的基本建筑块;组件有点类似子系统的概念,把一组相关的对象封装起来对外提供服务;组件的存在增加了信息的隐蔽程度,减少了馈入上层信道的信息数量,从而增加了系统的稳定性;

2、面向对象中强调封装,继承,多态 ;对象是类的实例,说到对象,往往是指源代码级的类的定义及其实现; 在面向组件强调封装,在复用方面更多的是强调黑盒复用。组件中,接口的概念特别被强调。接口是组件的和组件使用者之间的契约;接口的确定使得组件的开发者和使用者得以分开。

3、组件集中关注业务的职责,明确业务边界;对象关注同一业务的所有方面。
假如业务复杂的话,同一个概念实体,可能包含1000个属性,而这1000个属性可以分类成多个方面,
用面向对象方法,那么针对这1000个属性的操作,就会封装在这个对象里,结果所有操作因为所针对的属性捆绑,而捆绑,不能达到部分重用。
组件提供了更好的方式,针对这1000个属性的操作按职责分在不同的业务组件里,同时部分有公用可能的组件也可针对其他业务的提供某些方面的重用。

4、 作为构建系统的基本建筑块,组件需要容器的帮助。容器为组件提供了运行环境,使组件能在一个较高的平台上完成自己最擅长的工作而不用考虑过多的底层细节。在组件中往往要实现一些容器所需的回调方法,来进行容器与组件间的沟通。容器也向组件提供一些公用的接口,使组件能够使用容器提供的服务(事务,安全等等)。容器的存在使得组件的使用者与组件的组装(配置)者得以分开。组件总是一定容器内的组件。由于组件生活在容器中,组件的管理尤其是生命周期的管理就成了容器的职责。生存在容器中,组件的状态(state)、持久性、通信方式也是必须要考虑的一些问题。由此产生了组件的类别。

5、领域模型本身反映了现实世界的根本复杂性,组件针对的是领域模型的某个方面的相关属性和相关操作。就像面向方面思想一样,核心关注的是概念实体本身,方面则是按逻辑相关性分组的相关属性和相关操作。不同类型的实体核心关注的是不一样的,但一定某几个非核心方面存在类似。对于实现来说,可以为每个方面申明一个父类,然后从多个方面继承。


本文章参加了《SOA中国路线图》博客大赢家活动!

 评论 查看全部评论
 
lithor 于 2008-03-02
组件是粗粒度的,对象是细粒度,组件是对很多对象的进一步封装。