目录

设计模式的七大原则

单一职责原则

💡 一个类应该只有一个发生变化的原因。

  • 一个类或者一个方法只负责一件事儿。

  • 只有逻辑足够简单,我们才可以违反该原则,否则,应当遵守。

接口隔离原则

💡 指明客户(client)不应被迫使用对其而言无用的方法或功能。

依赖倒置原则

💡 程序要依赖于抽象接口,不要依赖于具体实现。

  • 高层模块不应该依赖底层模块,低层模块尽量都要有抽象类或接口。

  • 依赖倒置的中心思想是面向对象编程。

里氏替换原则

💡 派生类(子类)对象可以在程式中代替其基类(超类)对象。

继承的劣势

  • 如果子类对已经实现的方法进行任意修改,就会对整个继承体系造成破坏。

  • 子类和父类是高度耦合的。

如何使用里氏替换原则

  • 所有使用父类的地方必须透明的使用其子类的对象。

  • 在子类中尽量不要重写父类的方法。

  • 多用组合,少用继承。

  • 抽象出更稳定的父类,然后继承它。

开闭原则 OCP

💡 软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。

  • 该类是设计模式的核心。

  • 用抽象构建框架,用实现拓展细节。

  • 对于需求的变化,应该尽量使用拓展来实现。

迪米特法则

💡 一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。

  • 迪米特法则又叫最少知道原则。

  • 类与类关系越密切,耦合度越大。

  • 只与直接的朋友通信。

合成复用原则

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