1、單一職責原則
- 就一個類而言,應該僅有一個引起它變化的原因
如果一個雷承擔的職責過多,就等於吧這些職責耦合在一起,一個職責的變化可能會小若或者一直這個類完成其它職責的能力,這種耦合會導致脆弱的設計,當需求變化時,可能會導致大面積的破壞
2、開放封閉原則
- 類、模組、函式等應該可以擴充套件但是不可以修改
- 對於擴充套件是開放的(open for extension)
- 對於修改是封閉的(closed for modification)
3、依賴倒轉原則
- 抽象不應該依賴細節,細節應該依賴於抽象(面向介面,不要面向實現)
- 高層模組不應該依賴底層模組。都應該依賴抽象
4、裡式代換原則
- 子型別必須能夠替換掉他們的父型別
5、迪米特法則(最少知識原則)
- 如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接相互作用。如果其中一個類需要呼叫另一個類的某一個方法的話,可以通過第三者轉達這個呼叫
- 強調類之間鬆耦合,在類的結構設計上每一個類都應該當儘量降低成員訪問許可權
- 耦合越弱越有利於複用