1. 單一職責原則
一個類只有一個職責,只有一個原因引起變化
最大的好處是復用,類、接口拆得夠小,復用的可能就越大
需求變化引起的修改少
2. 里氏替換原則
父類出現的地方子類都可以出現
子類必須實現父類的所有方法
為了實現面向接口/面向抽象編程
3. 依賴倒置原則
高層依賴不依賴低層,依賴于抽象
抽象不依賴于細節(jié),細節(jié)依賴于抽象
本質就是面向接口編程
接口、抽象的實質就是契約
抽象將不同的實現方式進行和約束和職責劃分,是軟件設計中的精髓
各個類之間松耦合
4. 接口隔離原則
- 盡量不要依賴不需要的接口,這就要求接口拆得足夠細
5. 迪米特法則(最少知識原則)
一個類對另一個類需要知道的越少越好
一個類只和自己的朋友類交流,朋友類包括出現在成員變量和參數的類
不要在方法體中直接調用其他類,這樣耦合度太高
6. 開閉原則
總原則
對修改關閉,對擴展開放
盡量通過增加代碼而不是修改原有代碼來實現新的需求變化
軟件設計時要有足夠的抽象