组件设计的重中之重——耦合的原则与原则背后:设计的必由之路
2023-09-21 22:24:19
上回说到组件聚合,反映的是组件内部的“基本元素”的选择标准。第14章介绍的组件耦合则是指组件和组件之间的关系,这些依赖关系有些是好的,有些是不好的,我们即将看到的这些原则就是在澄清什么是好的依赖标准。
ADP(Acyclic Dependencies Principle 无依赖循环原则)
无依赖循环原则是指组件之间不能形成循环依赖,即组件A依赖组件B,组件B依赖组件C,组件C又依赖组件A,这样就形成了一个循环。循环依赖会导致编译错误、运行时错误,以及难以理解和维护的代码。
CDP(Common Closure Principle 共同封闭原则)
共同封闭原则指出,经常一起变化的一组类应该放在同一个组件中。换句话说,如果两个或多个组件经常一起变化,那么它们应该放在同一个组件中。这样可以减少组件之间的依赖关系,使代码更容易维护。
SRP(Single Responsibility Principle 单一职责原则)
单一职责原则是指一个组件应该只负责一个功能。如果一个组件的职责过多,那么它就很难理解和维护。因此,应该将组件的职责分解成多个小组件,每个小组件只负责一个功能。
ISP(Interface Segregation Principle 接口隔离原则)
接口隔离原则指出,一个组件不应该依赖于它不需要的接口。换句话说,一个组件只应该依赖于它实际使用到的接口。这样可以减少组件之间的依赖关系,使代码更容易维护。
DIP(Dependency Inversion Principle 依赖倒置原则)
依赖倒置原则指出,高层组件不应该依赖于低层组件,而是应该依赖于抽象。这样可以使高层组件更容易维护,因为高层组件不需要关心低层组件的具体实现。
OCP(Open-Closed Principle 开闭原则)
开闭原则是指一个软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。换句话说,应该能够在不修改现有代码的情况下,向软件实体添加新功能。这样可以使软件更容易维护,因为不需要修改现有代码来添加新功能。
LSP(Liskov Substitution Principle 里氏代换原则)
里氏代换原则指出,子类应该能够替换父类,而不会破坏程序的正确性。换句话说,如果一个子类能够替换父类,而不会导致程序出现错误,那么这个子类就是父类的子类型。这样可以使代码更容易维护,因为子类可以替换父类,而不必修改父类。
这些原则只是组件设计中众多原则中的一小部分。在实际开发中,需要根据具体情况选择合适的原则来指导设计。