面向对象的设计原则(Principle)
-
开放/封闭原则(Open Closed Principle)
类或者对象及其方法对于扩展来说,应该是开放的,但是对于修改来说,应该是封闭的.
优点:
现有的类不会被修改,因此退化的可能性较小
它还有助于保持以前的代码的向后兼容性
-
控制反转原则
高层级模块不应该依赖于低层级的模块,它们应该都依赖于抽象,细节应该依赖于抽象,而不是抽象依赖于细节.
优点:
消弱了模块间的紧耦合,因此消除了系统中的复杂性/刚性.
由于在依赖模块之间有一个明确的抽象层(由钩子或参数提供),因此便于通过更好的方式处理模块之间的依赖关系.
-
接口隔离原则
客户端不应该依赖于他们不需要使用的接口.
优点:
它强制开发人员编写"瘦身型"接口,并使方法与接口紧密相关.
防止向接口中随意添加方法
-
单一职责原则
类的职责单一,引起类变化的原因单一.当我们开发类的时候,这个类应该为特定的功能服务,如果一个类实现了两个功能,那么最好将他们分开,也就是说,功能才是改变的理由.
优点:
每当一个功能发生变化时,除了特定的类需要改变外,其他类无需改变.
此外,如果一个类有多种功能,那么依赖它的类必定会由于多种原因而经历多次修改,这是应该避免的.
-
替换原则
派生类必须能够完全取代基类