设计模式七大原则!

单一职责原则(Single Responsibility Principle)

一个类应该只负责一项职责。

  • 如类A负责两个不同职责:职责1,职责2。

当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2。

接口隔离原则(Interface Segregation Principle)

客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。

  • 大接口要分割成小接口,接口专用。
  • 客户端使用专用接口。

依赖倒转原则(Dependency Inversion Principle)

高层模块不应该依赖低层模块,二者都应该依赖其抽象(接口或者抽象类)。

  • 抽象不应该依赖细节,细节应该依赖抽象。

依赖倒转(倒置)的中心思想是面向接口编程。

里氏替换原则(Liskov Substitution Principle)

所有引用基类(父类)的地方必须能透明地使用其子类的对象。

  • 把父类设计为抽象类或者接口。
  • 子类必须实现父类的所有方法。

开闭原则(Open Closed Principle)

对扩展开放,对修改关闭。

  • 使用接口和抽象类,实现不修改原代码,又可以拓展新方法。

迪米特法制(Demeter Principle)

一个对象应该对其他对象保持最少的了解。

一个实体应当尽量少的与其他实体之间发生相互作用。

  • 依赖者只依赖该依赖的对象,被依赖者只暴露该暴露的对象。

合成复用原则(Composite Reuse principle)

尽量使用合成/聚合的方式,而不是使用继承。