系统架构设计(五):构件

定义

构件(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 微服务
相关推荐
开航母的李大7 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
曼岛_1 天前
[系统架构设计师]系统质量属性与架构评估(八)
架构·系统架构
丘大梨1 天前
QT 基础聊天应用项目文档
运维·数据库·系统架构
Ashlee_code1 天前
香港券商智能櫃台系統技術解決方案——融合跨境清算與AI風控,助力券商把握滬港雙市爆發機遇**
java·科技·金融·重构·架构·系统架构·php
蒋星熠2 天前
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
网络·c++·人工智能·深度学习·性能优化·系统架构
蝸牛ちゃん2 天前
信息系统架构:构建企业数字基石的蓝图与方法
系统架构·领域驱动设计·togaf·信息系统
文火冰糖的硅基工坊3 天前
[创业之路-551]:党、政府、经济、军队、文化、学术、社会七大领域的社会角色与职务层次结构(宏观-中观-微观)
系统架构·跨学科融合
文火冰糖的硅基工坊3 天前
[激光原理与应用-286]:理论 - 波动光学 - 不同频段电磁波的特点与差异性
系统架构··跨学科融合·电磁波·
Tadas-Gao4 天前
Java设计模式全景解析:从演进历程到创新实践
java·开发语言·微服务·设计模式·云原生·架构·系统架构
gptplusplus4 天前
超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
人工智能·重构·系统架构