首选让我们看看什么是面向组件编程:
面向组件编程的缩写是COP。COP是对OOP的补充,帮助实现更加优秀的软件结构。组件的粒度可大可小,需要取决于具体的应用。
在COP中有几个重要的概念:
服务:服务(Service)是一组接口,供客户端程序使用。例如,验证和授权服务,任务调度服务。服务是系统中各个部件相互调用的接口;
组件:组件(Component)实现了一组服务,此外,组件必须符合容器订立的规范,例如,初始化,配置、销毁。
COP 是对一种组织代码的思路,尤其是服务和组件两个概念。Spring框架中,就采用了COP的思路,将系统看作一个个的组件,通过定义组件之间的协作关系(通过服务)来完成系统的构建。这样做的好处是能够隔离变化,合理的划分系统。而框架的意义就在于定义一个组织组件的方式。
理解组件
组件不是一个新的概念,Java中的javaBean规范和EJB规范都是典型的组件。组件的特点在于他定义了一种通用的处理方式。例如,JavaBean 拥有内视的特性,这样就可以通过工具来实现JavaBean的可视化。而EJB规范定义了企业服务中的一些特性,使得EJB容器能够为符合EJB规范的代码增添企业计算所需要的能力,例如事务、持久化、池等。
所以,组件比起对象来的进步就在于通用的规范的引入。通用规范往往能够为组件添加新的能力(就像上面所讨论的),但也给组件添加了限制,例如你需要实现EJB的一些接口。以下我们将讨论组件的一些相关问题:
组件的粒度
组件的粒度是和系统的架构息息相关的。组件的粒度确定了,系统的架构也就确定了。在小规模的软件中,可能组件的粒度很小,仅相当于普通的对象,但是对于大规模的系统来说,一个组件可能包括几十,甚至上百个对象。因此,对使用COP技术的系统来说,需要正确的定义组件的粒度。较好的定义粒度的方法是对核心流程进行分析。
————————————————————————————————————————————–
我对面向组件编程的看法:
要提高代码的重用性和生命力,其中一个比较好的方案是把公用部分提取出来做成一个组件包. 比如开源的包,等等都是以不同粗细粒度的方式把用于特定方面的代码进行了优化和设计组合而成的接口.他们定义了一组可扩展性的api,这些api不会局限于某个特定的业务,比如我们说的某个项目,某个需求. 这些包通过对代码的不断改进来提升组件的功能和涉及面,从而版本越高,组件包越稳定.例如我们所了解的struts.jar.可以认为它是一个控制层的组件包.
面向组件编程应该也是敏捷过程所要求的,通过良好设计的组件包,我们在开发的时候有几点优势:
1.组件包有实现时,在需求紧张的情况下我们不需要花过多的时间去考虑另一种方案.直接利用组件包理的稳定的代码何乐而不为?
2.我们可以专注于业务的实现,而不需要考虑于业务无关的编码;
3.采用了稳定的组件包,增强了应用的稳定性和健壮性.
4.我们可以节约时间来学习更先进的技术.原始的技术因为已经得到了累计(通过组件包的方式).
5.采用组件编程,代码更少,但是功能更强,更稳定.
面向组件编程对代码的要求很高,需要大家一起来探讨和共享。
—————————————————————————-2
1、什么是面向对象编程(Object-Oriented Programming)?
面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法、新思想。过去的面向过程编程常常会导致所有的代码都包含在几个模块中,使程序难以阅读和维护。在做一些修改时常常牵一动百,使以后的开发和维护难以为继。而使用OOP技术,常常要使用许多代码模块,每个模块都只提供特定的功能,它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。
在面向对象中,算法与数据结构被看做是一个整体,称作对象,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义对象和程序:
对象=(算法+数据结构),程序=(对象+对象+……)。
从上面的等式可以看出,程序就是许多对象在计算机中相继表现自己,而对象则是一个个程序实体。
2、什么是面向组件编程(Component-Oriented Programming)?
组件不是一个新的概念,Java中的javaBean规范和EJB规范都是典型的组件。组件的特点在于他定义了一种通用的处理方式。例如,JavaBean 拥有内视的特性,这样就可以通过工具来实现JavaBean的可视化。而EJB规范定义了企业服务中的一些特性,使得EJB容器能够为符合EJB规范的代码增添企业计算所需要的能力,例如事务、持久化、池等。
所以,组件比起对象来的进步就在于通用的规范的引入。通用规范往往能够为组件添加新的能力(就像上面所讨论的),但也给组件添加了限制,例如你需要实现EJB的一些接口
COP比OOP更进一步。通常OOP将数据对象组织到实体中。这种方法具有很多优点。但是,OOP有一个大的限制:对象之间的相互依赖关系。去掉这个限制的一个好的想法就是组件。组件和一般对象之间的关键区别是组件是可以替代的。
3、什么是面向方面编程(Aspect-Oriented Programming)?
将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。
4、什么是面向服务编程(Service-Oriented Programming)?
SOP是一种体系结构,目标是在软件代理交互中获得松散耦合。一个服务是一个服务提供者为一个服务消费者获得其想要的最终结果的一个工作单元。服务者与消费者都以软件代理代表他们自己的角色。
这听起来有些太抽象,但是SOP确实无处不在。让我们在你的住房中找到一个SOP的例子。例如播放一个CD,你可以将要播放的CD放入CD机中,CD机将为你播放这张CD,CD机提供了一个CD播放服务。这里的好处就是你可以用不同的CD机去播放同一张CD。他们能提供同样的CD播放服务,但是服务质量是不同的。
SOP的思想明显不同于面向对象的编程,面向对象编程强烈的建议你应该将数据与其操作绑定。因此在面向对象编程风格中,每张CD 有它自己的CD播放机,他们之间不能被拆开。这听起来很奇怪,但是这就是我们建立许多已存软件系统的方式。
而SOP就不一样了,为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务:
松散耦合、位置透明、协议独立
基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如 J2EE 或 .NET)的技术规范不应该影响 SOP用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量。
分享到:
相关推荐
面向对象编程思想 面向对象编程思想是当前计算机界关心的重点,它是 90 年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用...
Java面向对象编程思想 Java 面向对象编程思想是 Java 编程语言的核心思想之一,通过封装、继承和多态三个特征,实现代码的重用和可维护性。 一、封装 封装是 Java 面向对象编程的三大特征之一,通过 Java 的类来...
《Delphi面向对象编程思想》随书源码.rar《Delphi面向对象编程思想》随书源码.rar《Delphi面向对象编程思想》随书源码.rar《Delphi面向对象编程思想》随书源码.rar《Delphi面向对象编程思想》随书源码.rar《Delphi...
### Delphi面向对象编程思想 #### 一、Delphi与面向对象编程简介 Delphi是一种基于Object Pascal的集成开发环境(IDE),它以其强大的可视化工具和高效的编译器而闻名。Delphi支持面向对象编程(OOP)的概念,并且...
《Delphi面向对象编程思想》是一本专注于介绍如何在Delphi环境下运用面向对象编程技术的专业书籍。这本书由刘艺撰写,旨在帮助读者深入理解和熟练掌握面向对象编程的基本概念、原则和技巧,以及如何在实际的Delphi...
本篇将深入探讨Delphi的面向对象编程思想及其在实践中的应用。 首先,我们来理解面向对象编程的基本概念。面向对象编程的核心是类(Class),它是对象的蓝图,定义了对象的数据结构和行为。对象是类的实例,它们...
面向对象的编程思想是现代软件开发中的核心概念,它是一种以对象为中心的编程范式,旨在提高代码的可重用性、灵活性和可维护性。面向对象编程(Object-Oriented Programming,简称OOP)源自于面向过程编程,但在很多...
### JAVA面向对象编程思想 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它通过模拟现实世界中的对象及其交互方式来构建软件系统。Java作为一种典型的面向...
《Delphi面向对象编程思想刘艺》是一本深入讲解Delphi编程中面向对象技术的专业书籍。作者刘艺以其丰富的经验和深厚的理论功底,系统地阐述了面向对象编程的基本概念、原则以及在Delphi中的实际应用。这本书对于想要...
Delphi面向对象编程思想PDF版, 這是分割檔七之七 Delphi面向对象编程思想PDF版_rar7
刘艺老师的"面向对象编程思想"课程或资料,很可能详细讲解了这种编程方式的核心理念与实践技巧。 在Delphi这一集成开发环境中,OOP的应用尤其广泛。Delphi以其高效的VCL(Visual Component Library)组件库和强大的...
Java 的核心是面向对象编程.所有的java程序都是面向对象的。 以前总听老师说c语言是面向过程的,c++和java是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为面向对象,搞得我一直对此稀里糊涂。 最近看了...
《Delphi面向对象编程思想》是一本专注于介绍如何在Delphi环境下运用面向对象编程的书籍。面向对象编程(Object-Oriented Programming,OOP)是一种强大的软件开发方法,它通过将数据和操作数据的方法封装在对象中,...
Delphi面向对象编程思想PDF版, 這是分割檔七之二
《Delphi面向对象编程思想》是由刘艺编著的一本深入探讨面向对象编程在Delphi环境中的应用的书籍。这本书因其深入浅出的讲解和实用的示例,曾深受程序员们的喜爱,虽然现在已经绝版,但其PDF版本仍然在开发者之间...
《Delphi面向对象编程思想》是一本深入探讨Delphi编程技术的书籍,其核心主题是面向对象编程(Object-Oriented Programming, OOP)。在 Delphi 中,面向对象编程是构建强大、可维护和可扩展软件系统的关键。下面将...
《Delphi面向对象编程思想》是一本专注于介绍如何在Delphi环境下运用面向对象编程的书籍。面向对象编程(Object-Oriented Programming,OOP)是一种软件设计范式,它基于“对象”的概念,将数据和操作这些数据的方法...
《Delphi面向对象编程思想》是由刘艺编著的一本专著,主要探讨了在Delphi环境下如何有效地进行面向对象编程。Delphi是一款强大的Windows应用开发工具,以其高效的编译器和直观的可视化设计界面而受到程序员的青睐。...
4. 更接近现实世界的模型:面向对象的思想模仿了现实世界中的对象和它们之间的关系,使代码更容易理解,降低学习和维护的难度。 面对面向对象编程,我们需要思考的问题包括: 1. 如何合理地设计类和对象,以达到...