定义
构件(Component)是指一个具有明确边界和独立部署能力的模块化单元,能够封装实现细节,并通过接口与其他构件协作完成系统功能。
主要特性
特性 | 说明 |
---|
可复用性 | 构件可以在不同系统中被重复使用。 |
可部署性 | 构件可以独立部署,具备独立生命周期。 |
模块化 | 构件通过封装实现细节,使系统结构更清晰。 |
接口明确 | 构件通过明确的接口暴露功能,屏蔽内部实现。 |
低耦合高内聚 | 构件之间通过接口交互,降低系统耦合度,提高可维护性和扩展性。 |
构件与模块的区别
项目 | 构件 | 模块 |
---|
粒度 | 一般比模块粗 | 粒度较细 |
接口 | 明确定义,便于集成和替换 | 通常是代码级的调用 |
部署 | 可独立部署,有生命周期管理 | 通常依赖整体系统进行部署 |
复用性 | 更强调跨项目复用 | 通常局限于系统内部复用 |
分类
- 逻辑构件:反映系统的功能逻辑结构,例如业务逻辑层构件、数据访问层构件等。
- 物理构件:反映系统的部署结构,例如可执行文件、动态链接库(DLL)、Web 服务等。
- 可重用构件:具有通用性,可用于多个系统或项目中。
- 专用构件:针对特定业务或系统定制开发。
设计原则
- 单一职责原则(SRP)
- 接口分离原则(ISP)
- 依赖倒置原则(DIP)
- 开放封闭原则(OCP)
- 可替换性:构件之间应可互换,不影响系统整体功能。
构件模型标准(常见)
- OMG CORBA 构件模型
- JavaBeans / Enterprise JavaBeans(EJB)
- .NET 构件模型
- OSGi 模型
在架构设计中的作用
- 支持架构分层:如表示层、业务逻辑层、数据访问层。
- 提高系统可维护性和可扩展性。
- 支持分布式部署:多个构件可分布在不同主机上。
- 支撑构建面向服务架构(SOA)和微服务架构(MSA)。
构件与服务的关系
项目 | 构件 | 服务 |
---|
面向 | 开发者 | 使用者 |
实现形式 | 二进制包、库、模块等 | 接口定义、Web Service、API等 |
通信方式 | 本地调用 | 通常是远程调用(HTTP、RPC等) |
构件技术选型示例
构件类型 | 技术或平台示例 |
---|
Java 构件 | EJB、Spring Bean、OSGi |
.NET 构件 | DLL、Assembly、NuGet 包 |
Web 构件 | JSP、Servlet、Web Component |
跨平台构件 | Docker 容器、gRPC 微服务 |