何为面向组件编程?与之相比面向对象、面向服务又是什么?

何为面向组件编程?与之相比面向对象、面向服务又是什么?_第1张图片
image

​件技术和思想的出现都是为了解决所在的那个年代软件开发的复杂性,对象技术和组件技术也不例外。当然还有很多其它技术,像DBC(契约式编程)、AOP、MDA等,这些思想都在影响程序的设计与实现方式。

面向对象、面向服务、面向组件,他们真实的叫法应该是:“面向对象编程”“面向服务架构”“面向组件开发”:

面向对象编程(Object-Oreinted Programming) 是一种编程范式

何为面向组件编程?与之相比面向对象、面向服务又是什么?_第2张图片
image

指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西。以它为代表的编程语言有:Java、c++、python、simula 67、Smalltalk等,他们主要有这几种特点:

1、识认性,系统中的基本构件可识认为一组可识别的离散对象;

2、类别性,系统具有相同数据结构与行为的所有对象可组成一类;

3、多态性,对象具有惟一的静态类型和多个可能的动态类型;

4、继承性,在基本层次关系的不同类中共享数据和操作。

面向服务架构(Service-Oreinted Architecture)

何为面向组件编程?与之相比面向对象、面向服务又是什么?_第3张图片
image

面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。

SOA基础结构有:SOA、WSD、UDDI、WS-IBasicProfile、J2EE和.Net。同样它还包括:安全、可靠、策略、控制、管理等特性,而且它与Web容易混淆,Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。

面向组件开发(Component-Based Development) 是一种软件工程实践

何为面向组件编程?与之相比面向对象、面向服务又是什么?_第4张图片
image

面向组件技术建立在对象技术之上,它是对象技术的进一步发展,类这个概念仍然是组件技术中一个基础的概念,但是组件技术更核心的概念是接口。组件技术的主要目标是复用--粗粒度的复用,这不是类的复用,而是组件的复用,如一个dll、一个中间件,甚至一个框架。

VB、PB、C++ Builder/Dephi、JAVA等都是面向组件开发的语言,一个组件的外形/外貌应该是简单的、应该是清晰的、没有冗余的东西、也没有无关紧要的东西,这个外貌通过接口来描述,接口中可以发布事件、属性和方法。这三种元素就足以描述一个组件外貌的所有特征。
如果有正在学java的程序员,可来我们的java技术学习扣qun哦:72340,3928,小编花了近一个月整理了一份非常适合18年学习的java干货,加入就免费送java的视频教程噢!而且我每天晚上都会在里面直播讲Java知识,从零基础学习到有基础进阶,欢迎初学和进阶中的小伙伴。

你可能感兴趣的:(何为面向组件编程?与之相比面向对象、面向服务又是什么?)