组件提供了一种将功能划分的方式,可以分开安装和部署。
组件设计的常用原则
在设计组件的时候,可以参考下面的原则:
- 对于组件中的类,应该遵守S.O.L.I.D的类设计原则。这方面大家可以参考:面向对象设计的SOLID原则。简单的说,S.O.L.I.D原则就是:
- Single responsibility principal:单一职责原则,一个类应该只有一个职责。
- Open/Closed principal:开放封闭原则,类应该支持扩展,而不是去修改它。
- Liskov substitution principal:里氏替换原则,子类应该可以被基类替换。
- Interface segregation principal:接口分离原则,不同的客户端,不同的需求,应该暴露不同的接口。
- Dependency inversion principal:依赖倒置原则,对类的依赖应该被抽象代替,抽象不应该依赖细节,细节应该依赖于抽象。
- 设计的组件应该是高内聚的。不要添加无关的的功能,或者是混合其他的功能,使得类的负担过重。例如:在业务组件中要避免将数据访问和业务逻辑混合在一起。只有当功能内聚,你创建的程序集就可以包含多个组件,就可以将组件安装在适当的应用层中,甚至是部署在独立的物理层。
- 一个组件不应该依赖于其他组件的内部实现。每个组件和对象应该调用另外一个对象和组件的方法,方法包括如何处理请求,如果需要的话,应该会路由到适当的子组件或者是其他组件。
- 理解组件之间是如何通信的。你一定要考虑通信是否跨越物理边界,还是跨越进程边界,还是所有的组件都运行在同一个进程。
- 保持跨层关注的代码从应用逻辑中抽象出来。跨曾关注的代码,例如:安全,通信,操作管理,日志和性能仪表盘。将这些代码混合在组件中,会导致系统难以维护和扩展。
- 应用组件为基础的架构风格的关键原则。包括可重用性,可替代性,扩展性,封装性,独立性,不和特定上下文相关。
分层组件分布
应用的每一层都有很多实现本层功能的组件。这些组件应该是内聚的,松散耦合的,简化重用性和维护性。下图显示了每一层的组件类型。
表现层组件
表现层组件实现的功能需要允许用户和应用进行交互。在设计的时候可以参考下面的原则:
服务层组件
你的应用可能暴露出服务层,供客户端或者是其他系统交互。服务层提供客户端和其他系统一种访问业务逻辑层的方式,通过消息使用系统的功能,通常包括下面的内容:
业务层组件
业务逻辑层组件实现了系统的核心功能,封装了业务逻辑。通常包括下面类型的组件:
数据访问层组件
数据访问层组件提供了数据访问,向其他网络系统暴露数据,通常包括下面的部分:
跨层关注的组件
很多功能需要在很多层实现。例如:
相关的设计模式
分类 |
相关模式 |
Business Component |
- Application Facade
- Chain of Responsibility
- Command
|
Business Entity |
- Domain Model
- Entity Translator
- Table Model
|
Presentation Entity |
|
Presentation Logic |
- Application Controller
- Model-View-Controller
- Model-View-ViewModel
- Model-View-Presenter
- Passive View
- Presentation Model
- Supervising Presenter
|
Service Interface |
- Facade
- Remote Facade
- Service Interface
|
Workflow |
- Data-Driven Workflow
- Human workflow
- Sequential workflow
- State-Driven workflow
|
未完待续。。。。。。。。。。。。。。。。。。。。。。。。
分享到:
相关推荐
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 ...
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。
03.AxureUX中后台管理信息系统通用原型设计方案 v2(设计组件).rp 03.AxureUX中后台管理信息系统通用原型设计方案 v2(设计组件).rp 03.AxureUX中后台管理信息系统通用原型设计方案 v2(设计组件).rp 03.AxureUX中...
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 ...
SystemVerilog路科验证V2是一个SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注,可快速获取自已需要的知识,喜欢的平台可下载试试! 介绍设计描述和验证语言SystemVerilog的基本...
大型金融数据中心网络架构设计V2.pptx
【SystemVerilog】路科验证V2学习笔记.7z
云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2....
一种结合车联网和C-V2X的终端设备系统架构设计.pdf
AADL 学习笔记参考文件 AADL 标准V2
云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云平台系统架构设计文档v2.pdf云...
王晓波-从微服务到Serverless+架构应用与实践V2-32页.pdf
微服务架构分享V2.pptx
王晓波-从微服务到Serverless+架构应用与实践V2.pdf
用友培训课件:U9V2 8组件化实施方案实例指导_GL-090凭证模板.ppt
MTK架构分析v2参考.pdf
Ray -分布式计算框架架构设计详解 v2
大数据时代证券证券交易系统架构演化V2-SACC2021年中国系统架构师大会
ADMEMS方法推荐的《软件架构设计文档》