diff --git a/notes/面向对象思想.md b/notes/面向对象思想.md index 204d380c..8e27b841 100644 --- a/notes/面向对象思想.md +++ b/notes/面向对象思想.md @@ -4,7 +4,13 @@ * [2. 开放封闭原则](#2-开放封闭原则) * [3. 里氏替换原则](#3-里氏替换原则) * [4. 接口分离原则](#4-接口分离原则) - * [5. 依赖倒置原则](#5-依赖倒置原则) +    * [5. 依赖倒置原则](#5-依赖倒置原则) +* [其他常见原则](#其他常见原则) + * [1. 迪米特法则](#1-迪米特法则) + * [2. 合成复用原则](#2-合成复用原则) + * [3. 共同封闭原则](#3-共同封闭原则) + * [4. 稳定抽象原则](#4-稳定抽象原则) +    * [5. 稳定依赖原则](#5-稳定依赖原则) * [封装、继承、多态](#封装继承多态) * [1. 封装](#1-封装) * [2. 继承](#2-继承) @@ -50,6 +56,37 @@ S.O.L.I.D 是面向对象设计和编程 (OOD&OOP) 中几个重要编码原则 ( 1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 2. 抽象不应该依赖于细节,细节应该依赖于抽象 +# 其他常见原则 +除了上述的经典原则,在实际开发中还有下面这些常见的设计原则。 + +| 简写 | 全拼 | 中文翻译 | +| -- | -- | -- | +|LoD|   The Law of Demeter   | 迪米特法则 | +|CRP|   The Composite Reuse Principle          | 合成复用原则 | +|CCP|   The Common Closure Principle | 共同封闭原则 | +|SAP| The Stable Abstractions Principle | 稳定抽象原则 | +|SDP| The Stable Dependencies Principle | 稳定依赖原则 | + +## 1. 迪米特法则 + +迪米特法则又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。 + +## 2. 合成复用原则 + +尽量使用对象组合,而不是继承来达到复用的目的。 + +## 3. 共同封闭原则 + +一起修改的类,应该组合在一起(同一个包里)。如果必须修改应用程序里的代码,我们希望所有的修改都发生在一个包里(修改关闭),而不是遍布在很多包里。 + +## 4. 稳定抽象原则 + +最稳定的包应该是最抽象的包。不稳定的包应该是具体的包。包的抽象程度跟它的稳定性成正比。 + +## 5. 稳定依赖原则 + +包之间的依赖关系都应该是稳定方向依赖的,包要依赖的包要比自己更具有稳定性。 + # 封装、继承、多态 封装、继承、多态是面向对象的三大特性。