Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系

1. 面向组件编程(COP)

所以,组件比起对象来的进步就在于通用的规范的引入。通用规范往往能够为组件添加新的能力(就像上面所讨论的),

COP比OOP更进一步。通常OOP将数据对象组织到实体中。这种方法具有很多优点。但是,OOP有一个大的限制:对象之间的相互依赖关系。去掉这个限制的一个好的想法就是组件。组件和一般对象之间的关键区别是组件是可以替代的。

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

作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

4、什么是面向服务编程(Service-Oriented Programming)? 
SOP是一种体系结构,目标是在软件代理交互中获得松散耦合

这里的好处就是你可以用不同的CD机去播放同一张CD。他们能提供同样的CD播放服务,但是服务质量是不同的。
    SOP的思想明显不同于面向对象的编程,面向对象编程强烈的建议你应该将数据与其操作绑定。因此在面向对象编程风格中,每张CD 有它自己的CD播放机,他们之间不能被拆开。这听起来很奇怪,但是这就是我们建立许多已存软件系统的方式。
而SOP就不一样了,为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务: 
松散耦合、位置透明、协议独立

基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如 J2EE 或 .NET)的技术规范不应该影响 SOP用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量。

参考资料

面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP) - 始则转俗成真,终乃回真向俗! - 博客频道 - CSDN.NET.html

Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系...相关推荐

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

    1.什么是面向对象编程(Object-Oriented Programming)? 面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方 ...

  2. 面向对象,面向服务,面向组件三种编程模式有什么区别

    三个数据后面都缺了一个词,分别是:"编程"."架构"和"开发"(或"软件工程"). 同时,不是"面向" ...

  3. S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则

    注:以下图片均来自<如何向妻子解释OOD>译文链接:http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html <How ...

  4. opp原则_面向过程编程(OPP) 和面向对象编程(OOP)的关系

    面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和 ...

  5. .net 面向组件编程_试析C#编程语言的特点及功能

      摘要: 如今,从C#编程语言的发展前景分析,其可能在多个操作系统平台中编写各种实现,而从现实应用情况来看,大多数操作人员及编译器供应商已经将C#作为创建编译器版本的标准.本文从工作实践出发,主要对 ...

  6. 【廖雪峰Python学习笔记】面向对象编程OOP

    面向对象编程 OOP:Object Oriented Programming 程序的基本单元:对象 [ = 数据 + 操作数据的函数] [属性 + 方法] 三大特点:数据封装.继承和多态 OPP中的计 ...

  7. React学习笔记2:React面向组件编程

    面向组件编程 概述 组件名必须首字母大写 虚拟DOM元素只能有一个根元素 虚拟DOM元素必须有结束标签 渲染类组件标签的基本流程 React内部会创建组件实例对象 调用render()得到虚拟DOM, ...

  8. iOS 开发之 OOA (面向对象分析) OOD (面向对象设计) OOP (面向对象编程)

    OOA OOA 基本概念 OOA 全称 Object-Oriented Analysis 面向对象分析 指的是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA 与结构 ...

  9. 面向对象编程OOP的三大特性

    面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...

最新文章

  1. JavaScript 慢慢移动的海绵宝宝
  2. 把数学函数印在T恤上却被告侵权,这位程序员怒了
  3. jquery学习手记(5)对象
  4. 【深度学习】神经网络基础:反向传播算法
  5. Strange Shuffle CodeForces - 1471E(交互题)
  6. 编写数据访问代码测试–单元测试是浪费
  7. ASP连接各类数据库的语句
  8. linux安装Git依赖的包出错,Centos6.7安装编译安装最新Git2.10.1
  9. oracle adg 人工干预,Oracle DataGuard
  10. (13)Result机制,让视图更丰富
  11. js生成二维码,中间有logo
  12. 友华PT920/PT921/PT921G光猫破解超级密码
  13. 汉诺塔(the Tower of Hanoi )
  14. 大赛来袭 | 千万项目商机+超40W大赛奖金,快来报名吧!
  15. Vue的安装及使用教程【超详细图文教程】
  16. 详解eNSP中Trunk端口和Access端口收发数据的区别
  17. linux毁灭指令,那些致命的Linux命令
  18. 提升认知能力 | 塑造大脑,重新认识你自己
  19. spring-boot整合redies、mybatis、thymeleaf
  20. 电脑表格日期怎么修改原有日期_表格里日期格式怎么改

热门文章

  1. atmega8 例程:USART串口通信
  2. 增强的Java FTP工具----扩展免费版的edtftpj
  3. FusionCharts 的XML标签属性
  4. python3 多继承搜索__init__方法的两种策略
  5. js+获取当前域名及跳转、下载操作
  6. java对外sdk提供接口_Android SDK封装,对外提供接口
  7. red hat linux 安装oracle10g vm,oracle 10g 在 RED HAT ENTERPRISE LINUX 5下的安装
  8. 微信小程序点播插件_微信小程序 wxParse插件显示视频问题
  9. linux编译mesa,如何在Ubuntu 16.04,17.10中安装Mesa 17.3.3
  10. arraylist扩容是创建新数组吗 java_Java编程之数组扩容