架构设计:设计原则
文章目录
-
- 六大原则
- 复用/发布等同原则(REP)
- 共同闭包原则(CCP)
- 共同复用原则(CRP)
- 无依赖循环原则(ADP)
- 稳定依赖原则(SDP)
- 稳定抽象原则(SAP)
- 总结
- 六大原则
六大原则
复用/发布等同原则(REP)
软件复用的最小粒度应等同于其发布的最小粒度,也就是说架构中的最小复用单元也是架构中的最小发布单元
组件中的类都是为了实现同一个功能,类似代码设计中的单一职责原则
共同闭包原则(CCP)
组件中的类应该是同一变化原因,或者说把同一变化原因的类和在同一个组件内,把不同变化原因的类方法不同的组件内,类似代码设计中的单一职责原则
共同复用原则(CRP)
不是紧密相连的类不应该被放在同一个组件里,也就是 尽量把有依赖关系的类封装在同一个组件中,这样会减少一个组件与另一个组件之间的多个类出现依赖关系的问题,类似代码设计中的单一职责原则
无依赖环原则(ADP)
组件依赖关系图中不应该出现环
解环:组件A->组件B->组件A
方案一:组件B不依赖组件A改为组件B依赖反转组件A
解环:组件A->组件B->组件C->组件D->组件A
方案一:组件D不依赖组件A改为组件D依赖反转组件A,依赖注入的方式比较复杂,需要组件B、组件C配合
方案二:组件D不能组件A,让组件A、组件D依赖新的组件E,将组件A、组件D中互相依赖的类全部放入新组件E
用到代码设计中的依赖反转原则
稳定依赖原则(SDP)
稳定组件的要求一:最少依赖其他组件
类似代码设计中的迪米特原则(依赖最少)
稳定抽象原则(SAP)
稳定组件的要求二:组件内部由接口和抽象类组成,以便将来做扩展
依赖抽象取代依赖具体
类似代码设计中的开闭原则
总结
与组件聚合(构建组件)相关的:复用/发布等同原则(REP)、共同闭包原则(CCP)、共同复用原则
与组件耦合(依赖)相关的:无依赖环原则、稳定依赖原则、稳定抽象原则