設計模式的設計原則
面向對象五大設計原則
作用 : 指導我們怎樣寫面向對象的代碼。
單一職責原則
定義 : 就一個類而言,應該僅有一個引起它變化的原因。
理解 : 一個引起它變化的原因,就是只有一個職責的意思。簡單理解就是一個類只做一件事。
作用 : 指導我們怎樣設計類。
里氏替換原則
定義 : 所有應用其基類的地方,必須都能透明的使用其子類的對象。
理解 :
子類能替換父類。
1. 子類的函數(shù)的參數(shù)范圍要比父類的要小。父類參數(shù)的范圍是1 - 10,子類的參數(shù)范圍要在1 - 10之間。
2. 子類的函數(shù)的返回值范圍要比父類的要大。父類返回值范圍是1 - 10,子類的返回值的范圍要大于1 - 10。
3. 子類和父類的變量和函數(shù)的權限修飾符盡量保持一致。
作用 : 指導我們怎樣設計繼承。
依賴倒置原則
定義 : 高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象;抽象不應該依賴細節(jié),細節(jié)應該依賴抽象。
理解 : 高層模塊是指調用者,低層模塊是指被調用者。類與類之間不應該相互依賴,應該都依賴抽象。
作用 : 指導我們怎樣設計類與類之間的組合關系。
接口隔離原則
定義 : 客戶端不應該依賴它不需要的接口。一個類對另一個類的依賴應該建立在最小的接口上。
理解 : 接口要設計得小,方法少,職能單一,每個類都只依賴自己需要的方法。
作用 : 指導我們怎樣設計接口。
開閉原則
定義 : 對于擴展是開放的,對于修改是封閉的。
理解 : 可以加代碼,不能修改代碼。
作用 : 指導我們怎樣去擴展代碼。
設計模式的六大原則
開閉原則
里氏代換原則
依賴倒轉原則
接口隔離原則
迪米特法則
定義 : 最少知識原則,一個實體應當盡可能少的與其他實體發(fā)生相互作用。
理解 : 盡量減少對象之間的交互。如果兩個對象需要彼此通信,可以使用第三方對象做中介者。
作用 : 指導我們怎樣設計相互作用的類之間的交互。
組合/聚合復用原則
定義 : 盡量使用組合/聚合的方式,而不是繼承。
理解 : 組合大于繼承。組合/聚合關系比繼承關系耦合度低。
作用 : 指導我們怎樣設計有層級結構的對象之間的交互。
KISS原則
解釋 : keep it simple。產(chǎn)品的設計越簡單越好。
目的 : 代碼盡可能簡單,保持代碼可讀和可維護性。
YAGNI 原則
解釋 : You Ain’t Gonna Need It。當前不需要的就不做。
目的 : 不要做過度設計。
DRY 原則
解釋 : Don’t Repeat Yourself。不要寫重復的代碼。
目的 : 提高代碼的復用性。