面向对象、面向服务、面向组件三种编程模式有什么区别?分别适用于哪些领域的开发?

http://blog.sina.com.cn/s/blog_6d2890600101cwih.html

三个数据后面都缺了一个词,分别是:“编程”、“架构”和“开发”(或“软件工程”)。 同时,不是“面向”组件而是“基于”组件。

  • 面向对象编程(Object-Oreinted Programming) 是一种编程范式。指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西。
  • 面向服务架构(Service-Oreinted Architecture) 是将软件设计成一组可互操作的服务的一套原则或方法论。通常在考虑系统架构时才会触及SOA。
  • 基 于组件开发(Component-Based Development) 是一种软件工程实践,设计时通常要求组件之间高内聚,松耦合。其接口可能是OO的,调用方式可能是以Service的方式。基于组件开发关注系统层次、子 系统边界和子系统间通讯的的设计,处于代码层面但不像OOP的一样是时刻需要运用的东西。


三者身处软件开发的不同层面,因此说他们用于“哪些领域”并不恰当。不论是哪个领域的软件开发,都可能要同时面对OOP、SOA和CBD。