摘要:本文通过面向对象和面向组件开发方法的对比,强调了面向组件是粗粒度的、针对业务领域的,并且需要容器。通过面向对象和面向组件的方法的比较可以将Spring、Hibernate等一些面向对象的技术框架与SCA、OSGi等面向组件编程规范与实现区分开来。
关键字:面向对象,面向组件,面向服务
通过对SOA、SCA、OSGi、JPF等面向组件理论和技术的理解,整理一篇面向对象开发与面向组件开发的区别。
1、面向对象中,对象之间的交互是细粒度的,通过单个消息进行交互;
面向组件中组件的交互是通过接口连接进行交互,接口内含有多个消息,接口不同则需要适配。
比如,信件一封一封的送,是对象之间的交互,信件一次性送完是组件交互。
2、组件的粒度比对象要大,在面向对象系统设计中,对象是构建系统的基本建筑材料;面向组件系统开发中,组件是系统的基本建筑块;组件有点类似子系统的概念,把一组相关的对象封装起来对外提供服务;组件的存在增加了信息的隐蔽程度,减少了馈入上层信道的信息数量,从而增加了系统的稳定性;
2、面向对象中强调封装,继承,多态 ;对象是类的实例,说到对象,往往是指源代码级的类的定义及其实现; 在面向组件强调封装,在复用方面更多的是强调黑盒复用。组件中,接口的概念特别被强调。接口是组件的和组件使用者之间的契约;接口的确定使得组件的开发者和使用者得以分开。
3、组件集中关注业务的职责,明确业务边界;对象关注同一业务的所有方面。
假如业务复杂的话,同一个概念实体,可能包含1000个属性,而这1000个属性可以分类成多个方面,
用面向对象方法,那么针对这1000个属性的操作,就会封装在这个对象里,结果所有操作因为所针对的属性捆绑,而捆绑,不能达到部分重用。
组件提供了更好的方式,针对这1000个属性的操作按职责分在不同的业务组件里,同时部分有公用可能的组件也可针对其他业务的提供某些方面的重用。
4、 作为构建系统的基本建筑块,组件需要容器的帮助。容器为组件提供了运行环境,使组件能在一个较高的平台上完成自己最擅长的工作而不用考虑过多的底层细节。在组件中往往要实现一些容器所需的回调方法,来进行容器与组件间的沟通。容器也向组件提供一些公用的接口,使组件能够使用容器提供的服务(事务,安全等等)。容器的存在使得组件的使用者与组件的组装(配置)者得以分开。组件总是一定容器内的组件。由于组件生活在容器中,组件的管理尤其是生命周期的管理就成了容器的职责。生存在容器中,组件的状态(state)、持久性、通信方式也是必须要考虑的一些问题。由此产生了组件的类别。
5、领域模型本身反映了现实世界的根本复杂性,组件针对的是领域模型的某个方面的相关属性和相关操作。就像面向方面思想一样,核心关注的是概念实体本身,方面则是按逻辑相关性分组的相关属性和相关操作。不同类型的实体核心关注的是不一样的,但一定某几个非核心方面存在类似。对于实现来说,可以为每个方面申明一个父类,然后从多个方面继承。
分享到:
相关推荐
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
Visual Basic.NET(VB.NET)是微软公司推出的一种现代编程语言,它完全支持面向对象的特性,使得开发者能够利用这些特性进行高效、可维护和可重用的组件开发。本篇将深入探讨如何在VB.NET中进行面向对象可重用组件的...
本书《面向对象开发实践之路(Delphi版)》由borland资深专家李维撰写,旨在全面介绍如何通过主流开发方法学和技术技巧来实施面向对象开发。在开发面向对象的程序设计(OOP)以及面向对象开发(OOD)方面,书中提供了...
面向对象开发方法(Object-Oriented Development Methodology, 简称 OO) 的核心理念在于它模仿人类思维方式来构建软件系统,使得问题域(即需要解决的实际问题)与解决方案的空间(即通过编程实现的解决方案)之间的...
《UML与面向对象开发深度解析》 在软件开发领域,UML(统一建模语言)和面向对象编程是两个至关重要的概念。本篇将深入探讨它们的核心理念、实际应用以及如何结合使用以提升开发效率和软件质量。 一、UML基础知识 ...
面向对象分析与设计是软件工程领域内,一种被广泛采用的方法,用来开发可靠的软件系统。该方法专注于对现实世界问题建模的过程,通过将系统分解成小的、可管理的部分(称为对象)来简化复杂的问题。 1. 面向对象...
许多游戏开发框架(如Unity、Unreal Engine)已经内置了面向对象的设计,提供现成的游戏对象系统、组件系统等,开发者可以利用这些工具快速构建游戏。 总结,面向对象的游戏开发是将游戏世界模型化为一系列相互作用...
面向对象的开发与设计在IT行业中是软件工程领域的一个核心概念,它强调将现实世界的问题映射为计算机程序中的对象,以实现更高效、可维护的代码结构。在这个主题下,我们将深入探讨“淘宝网面向对象的开发与设计”...
面向对象分析与设计是一种软件开发方法,它强调通过识别和构建对象来组织和定义软件系统的结构和行为。这种方法不仅能够提高软件的可维护性和可扩展性,还能显著提升开发效率。本书详细介绍了OOAD的基本原理和技术,...
《Visual Basic .NET面向对象可重用组件》这本书聚焦于如何在VB.NET环境中利用面向对象编程原则来设计和实现可重用的组件。面向对象编程(OOP)是一种流行的编程范式,它基于类和对象的概念,使得代码更加模块化、...
总结以上内容,这篇文档应该是关于EJB组件开发的指导手册或教程,详细阐述了创建EJB组件的步骤、EJB组件的分类、中间件和容器的作用以及EJB容器在部署和运行EJB组件中承担的职责。文档重点讲解了EJB的面向对象特性、...
面向对象分析与设计是软件开发领域中的一种重要方法论,主要应用于复杂系统的设计与实现。这一方法论由麻志毅等专家深入研究并传授,旨在提高软件开发的效率和质量。下面将详细介绍其中的关键知识点。 首先,我们来...
面向对象分析与设计是软件开发中的一种重要方法,旨在通过对对象的分析和设计来实现软件系统的开发。面向对象分析与设计的出现是基于面向对象编程语言的发展,旨在更好地贯彻软件开发的质量、可维护性和可重用性。 ...
面向对象分析与设计是软件开发领域中的核心概念,它结合了计算机科学、工程学和管理学的方法,旨在创建高效、可维护的软件系统。在这个过程中,UML(统一建模语言)扮演着至关重要的角色,它是面向对象设计的标准化...
在JAVA面向对象开发的宠物商店系统中,我们深入探讨了面向对象编程的核心概念和技术,以构建一个高效、可扩展且易于维护的系统。这个系统基于对象的高内聚和低耦合原则,确保了各组件之间的独立性,提高了代码的复用...
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它基于“对象”的概念,通过封装、继承和多态等核心特性,实现了代码的复用和模块化,极大地提高了软件开发的效率和可维护性。...
面向对象建模是软件开发过程中至关重要的一环,它通过可视化的方式表达系统的需求、结构和行为,而UML作为最广泛接受的建模语言,提供了丰富的图形符号来描述这些要素。 本资源可能包括了对书中各章节问题的解答,...
《UML面向对象设计与分析》是清华大学出版社出版的一本专著,由牛丽平编著,主要探讨了面向对象设计的重要工具——统一建模语言(UML)。这本书深入浅出地介绍了UML的各种图表及其在软件开发过程中的应用,为读者...
《面向对象分析与设计》是一门专为计算机科学与技术以及软件工程专业的本科生设计的专业基础课程,旨在教授学生如何运用面向对象技术进行软件开发。这门课程的核心是理解和应用面向对象分析与设计的方法,包括UML...
综上所述,面向对象分析与设计是软件开发过程中的关键步骤,它帮助我们理解和构建复杂系统,确保软件的质量和可维护性。通过深入学习和应用OOAD原则,开发者可以更好地满足用户需求,创建出更加灵活、可扩展的软件...