1、單一職責原則定義
- 一個對象應該只包含單一的職責,并且該職責被完整地封裝在一個類中。
- 就一個類而言,應該僅有一個引起它變化的原因。
2、開閉原則定義
- 一個軟件實體應當對擴展開放,對修改關閉。
3、里氏代換原則定義
- 如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有變化,那么類型S是類型T的子類型。
- 所有引用基類(父類)的地方必須能透明地使用其子類的對象。
4、依賴倒轉原則定義
- 高層模塊不應該依賴低層模塊,它們都應該依賴抽象。抽象不應該依賴于細節,細節應該依賴于抽象。
- 要針對接口編程,不要針對實現編程。
5、接口隔離原則定義
- 客戶端不應該依賴那些它不需要的接口。注意:在該定義中的接口指的是所定義的方法。
- 一旦一個接口太大,則需要將它分割成一些更細小的接口,使用該接口的客戶端僅需知道與之相關的方法即可。
6、合成復用原則定義
- 合成復用原則,又稱為組合/聚合復用原則,其定義如下:盡量使用對象組合,而不是繼承來達到復用的目的。
7 、迪米特法則定義
- 迪米特法則,又稱為最少知識原則,它有多種定義方法,其中幾種典型定義如下:
(1) 不要和“陌生人”說話。
(2) 只與你的直接朋友通信。
(3) 每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。