当前位置: 首页 > news >正文

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

定义

构件(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 微服务
http://www.xdnf.cn/news/408421.html

相关文章:

  • 服务器共享文件夹如何实现外网访问
  • [数据结构高阶]并查集初识、手撕、可以解决哪类问题?
  • hdfs-客户端操作-文件上传
  • 记一次redis未授权被种挖矿
  • Linux常见命令
  • GPL v2 许可证深度解析:条款逻辑与合规风险指南(下)
  • Tomcat服务部署
  • pth的模型格式怎么变成SafeTensors了?
  • Matlab 空调温度时延模型的模糊pid控制
  • YOLOv8网络结构
  • 1.10-数据传输格式
  • Java使用POI+反射灵活的控制字段导出Excel
  • MapReduce 的工作原理
  • 数据库分区与分表详解
  • java 中 pojo 的详细讲解
  • BGP练习
  • Java 内存模型(JMM)与内存屏障:原理、实践与性能权衡
  • Python基础:类的深拷贝与浅拷贝-->with语句的使用及三个库:matplotlib基本画图-->pandas之Series创建
  • 用户态到内核态:Linux信号传递的九重门(二)
  • 微信小程序仿淘宝拍照/照片点位识图、点位裁剪生图、图片裁剪组件、图片点位框选、裁剪生成图片,canvasToImg
  • 使用 DMM 测试 TDR
  • Ai应用部署离不开Docker环境
  • shell脚本实现docker运行镜像挂载
  • 【分享】利用自定义表单,文件摆渡系统实现数据合规与高效流转
  • Spark,hadoop 集群的常用命令
  • 科技快讯 | 字节跳动开源一款Deep Research项目;全球首个氮化镓量子光源芯片发布
  • 如何使用 Winget 命令安装 Microsoft Teams
  • 2.2 微积分的解释
  • Xubuntu系统详解
  • 解决pip安装PyPI默认源速度慢