构件也称为组件,它是软件系统中具有独立功能的部分,也是软件体系结构中重要地组成要素,它在功能和数据上构成了一个软件系统的基础‘
构件是系统中可替换的物理部分,它包装了实现而且遵从并提供一组接口的实现。
通俗地说,构件是系统设计的一个模块化元素,它隐藏了内部的实现,对外提供一组外部接口。在系统中,满足相同接口的构件可以自由地替换,如对象库、可执行体、COM+构件及企业级Java Beans等。构件不仅可以为这些事物建模,而且可以表达其它一些参加可执行系统的事物,如表、文件及文档。
构件的基类是“类”(Class),所以它具有类的所有功能(可以有属性、操作、行为等)。
构件向外部展现两种接口:提供接口和需要接口。提供接口表示构件为客户提供的功能,它告知构件如何被使用。构件至少要有一个提供接口。需要接口表示为了使构件工作,构件必须从其它服务中获取的功能。
构件和提供接口的接口元素之间用“接口实现”关系连接,和需要接口的接口元素之间用“使用”关系连接。表示提供接口的元素,用一个“棒棒糖”形状表示;表示需要接口的元素,用一个“插座”形状表示。当图中一个构件的提供接口和另外一个构件需要接口是同一个接口的时候,两个形状会合并。接口也可以用一个常规的方框形状表示。
下图是一个构件及提供接口及需要接口的示例。
如下所示: