设计模式的七大原则
目录
单一职责原则
💡 一个类应该只有一个发生变化的原因。
-
一个类或者一个方法只负责一件事儿。
-
只有逻辑足够简单,我们才可以违反该原则,否则,应当遵守。
接口隔离原则
💡 指明客户(client)不应被迫使用对其而言无用的方法或功能。
依赖倒置原则
💡 程序要依赖于抽象接口,不要依赖于具体实现。
-
高层模块不应该依赖底层模块,低层模块尽量都要有抽象类或接口。
-
依赖倒置的中心思想是面向对象编程。
里氏替换原则
💡 派生类(子类)对象可以在程式中代替其基类(超类)对象。
继承的劣势
-
如果子类对已经实现的方法进行任意修改,就会对整个继承体系造成破坏。
-
子类和父类是高度耦合的。
如何使用里氏替换原则
-
所有使用父类的地方必须透明的使用其子类的对象。
-
在子类中尽量不要重写父类的方法。
-
多用组合,少用继承。
-
抽象出更稳定的父类,然后继承它。
开闭原则 OCP
💡 软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。
-
该类是设计模式的核心。
-
用抽象构建框架,用实现拓展细节。
-
对于需求的变化,应该尽量使用拓展来实现。
迪米特法则
💡 一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。
-
迪米特法则又叫最少知道原则。
-
类与类关系越密切,耦合度越大。
-
只与直接的朋友通信。
合成复用原则
💡 尽量使用合成/聚合的方式,而不是使用继承。