面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)

一、什么是面向对象编程(Object-Oriented Programming)? 
java

面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法、新思想。过去的面向过程编程经常会致使全部的代码都包含在几个模块中,使程序难以阅读和维护。在作一些修改时经常牵一动百,使之后的开发和维护难觉得继。而使用OOP技术,经常要使用许多代码模块,每一个模块都只提供特定的功能,它们是彼此独立的,这样就增大了代码重用的概率,更加有利于软件的开发、维护和升级。 
在面向对象中,算法与数据结构被看作是一个总体,称做对象,现实世界中任何类的对象都具备必定的属性和操做,也总能用数据结构与算法二者合一地来描述,因此能够用下面的等式来定义对象和程序: 
对象=(算法+数据结构),程序=(对象+对象+……)。 
从上面的等式能够看出,程序就是许多对象在计算机中相继表现本身,而对象则是一个个程序实体。 

二、什么是面向组件编程(Component-Oriented Programming)? 
组件不是一个新的概念,Java中的javaBean规范和EJB规范都是典型的组件。组件的特色在于他定义了一种通用的处理方式。例如,JavaBean 拥有内视的特性,这样就能够经过工具来实现JavaBean的可视化。而EJB规范定义了企业服务中的一些特性,使得EJB容器可以为符合EJB规范的代码增添企业计算所须要的能力,例如事务、持久化、池等。 
因此,组件比起对象来的进步就在于通用的规范的引入。通用规范每每可以为组件添加新的能力(就像上面所讨论的),但也给组件添加了限制,例如你须要实现EJB的一些接口 
COP比OOP更进一步。一般OOP将数据对象组织到实体中。这种方法具备不少优势。可是,OOP有一个大的限制:对象之间的相互依赖关系。去掉这个限制的一个好的想法就是组件。组件和通常对象之间的关键区别是组件是能够替代的。 

三、什么是面向方面编程(Aspect-Oriented Programming)? 
将通用需求功能从不相关类之中分离出来;同时,可以使得不少类共享一个行为,一旦行为发生变化,没必要修改不少类,只要修改这个行为就能够。 
AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。 

四、什么是面向服务编程(Service-Oriented Programming)? 
SOP是一种体系结构,目标是在软件代理交互中得到松散耦合。一个服务是一个服务提供者为一个服务消费者得到其想要的最终结果的一个工做单元。服务者与消费者都以软件代理表明他们本身的角色。 
    这听起来有些太抽象,可是SOP确实无处不在。让咱们在你的住房中找到一个SOP的例子。例如播放一个CD,你能够将要播放的CD放入CD机中,CD机将为你播放这张CD,CD机提供了一个CD播放服务。这里的好处就是你能够用不一样的CD机去播放同一张CD。他们能提供一样的CD播放服务,可是服务质量是不一样的。 
    SOP的思想明显不一样于面向对象的编程,面向对象编程强烈的建议你应该将数据与其操做绑定。所以在面向对象编程风格中,每张CD 有它本身的CD播放机,他们之间不能被拆开。这听起来很奇怪,可是这就是咱们创建许多已存软件系统的方式。
而SOP就不同了,为了减小异构性、互操做性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具备下列特征的应用程序服务: 
松散耦合、位置透明、协议独立 
    基于这样的面向服务的体系结构,服务使用者甚至没必要关心与之通讯的特定服务,由于底层基础设施或服务“总线”将表明使用者作出适当的选择。基础设施对请求者隐藏了尽量多的技术。特别地,来自不一样实现技术(如 J2EE 或 .NET)的技术规范不该该影响 SOP用户。若是已经存在一个服务实现,咱们就还应该从新考虑用一个“更好”的服务实现来代替,新的服务实现必须具备更好的服务质量。算法

相关文章
相关标签/搜索