OOP,COP,AOP,SOP
2017-04-20 14:20
190 查看
1.OOP--COP(面向组件编程)
概念简介:COP(Component-OrientedProgramming):面向组件编程,所谓的组件是由一个类或多个类及其它元素组成,但是组件有个很明显的特征,就是它是一个独立的物理单元,经常以非源码的形式(如二进制,IL)存在。一个完整的组件中一般有一个主类,而其它的类和元素都是为了支持该主类的功能实现而存在的。我们使用的DLL文件就是组件。还有COM组件……
COP的目标是粗粒度的复用,它的核心是接口。其实就是隔离变化,让系统的构建更加灵活可变。
COP技术是建立在OOP技术之上的,它是OOP的进一步发展。类仍然是组件技术中一个基础的概念,组件技术更核心的是接口。组件技术的主要目标是复用--粗粒度的复用,不是类的复用,而是组件的复用,如一个DLL,一个中间件,甚至一个FrameWork。
2.OOP--AOP(面向切面编程或面向方向编程)
将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。
通常AOP被用到日志管理、异常处理、性能统计、安全控制、事务处理等系统功能的设计中。将将这些功能的代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
三幅图看懂AOP(摘自51技术博客)
传统业务逻辑组件设计
面向切面的设计
AOP原理剖析
3.OOP-SOP(面向服务编程)
SOP是一种体系结构,目标是在软件代理交互中获得松散耦合
这里的好处就是你可以用不同的CD机去播放同一张CD。他们能提供同样的CD播放服务,但是服务质量是不同的。
SOP的思想明显不同于面向对象的编程,面向对象编程强烈的建议你应该将数据与其操作绑定。因此在面向对象编程风格中,每张CD 有它自己的CD播放机,他们之间不能被拆开。这听起来很奇怪,但是这就是我们建立许多已存软件系统的方式。
而SOP就不一样了,为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务:
松散耦合、位置透明、协议独立
基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如J2EE 或 .NET)的技术规范不应该影响 SOP用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量
概念简介:COP(Component-OrientedProgramming):面向组件编程,所谓的组件是由一个类或多个类及其它元素组成,但是组件有个很明显的特征,就是它是一个独立的物理单元,经常以非源码的形式(如二进制,IL)存在。一个完整的组件中一般有一个主类,而其它的类和元素都是为了支持该主类的功能实现而存在的。我们使用的DLL文件就是组件。还有COM组件……
COP的目标是粗粒度的复用,它的核心是接口。其实就是隔离变化,让系统的构建更加灵活可变。
COP技术是建立在OOP技术之上的,它是OOP的进一步发展。类仍然是组件技术中一个基础的概念,组件技术更核心的是接口。组件技术的主要目标是复用--粗粒度的复用,不是类的复用,而是组件的复用,如一个DLL,一个中间件,甚至一个FrameWork。
2.OOP--AOP(面向切面编程或面向方向编程)
将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。
通常AOP被用到日志管理、异常处理、性能统计、安全控制、事务处理等系统功能的设计中。将将这些功能的代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
三幅图看懂AOP(摘自51技术博客)
传统业务逻辑组件设计
面向切面的设计
AOP原理剖析
3.OOP-SOP(面向服务编程)
SOP是一种体系结构,目标是在软件代理交互中获得松散耦合
这里的好处就是你可以用不同的CD机去播放同一张CD。他们能提供同样的CD播放服务,但是服务质量是不同的。
SOP的思想明显不同于面向对象的编程,面向对象编程强烈的建议你应该将数据与其操作绑定。因此在面向对象编程风格中,每张CD 有它自己的CD播放机,他们之间不能被拆开。这听起来很奇怪,但是这就是我们建立许多已存软件系统的方式。
而SOP就不一样了,为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务:
松散耦合、位置透明、协议独立
基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如J2EE 或 .NET)的技术规范不应该影响 SOP用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量
相关文章推荐
- 简单理解sop,oop,aop,cop
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
- Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
- Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)
- 面向对象先生和他的兄弟姐妹们(二)——小议【OOP、COP、AOP、SOP】
- 面向对象先生和他的兄弟姐妹们——小议【OOP、COP、AOP、SOP】
- 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)【转】
- Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP
- OOP VS. FP VS. AOP VS. COP
- 尝试用AOP解决OOP和设计模式问题(2)
- [导入]A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I)
- 【C++专题】C++多范式混合(OOP/GP/AOP)
- AOP可以认为是OOP更高一层次的抽象:面向行为的抽象
- [导入]A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I)