單一職責原則
課本定義:單一職責原則(SRP)就一個類而言,應該僅有一個引起它變化的原因。
爲什麼要遵守單一職責原則
1、提高類的可維護性和可讀寫性
2、提高系統的可維護性
3、降低變更的風險
開閉原則
課本定義:開放-封閉原則,是說軟件實體(類、模塊、函數等等)可以可以擴展,但是不可以修改。
個人理解: 對於擴展是開放,對於修改代碼關閉。
依賴倒轉原則
課本定義:A.高層模塊不應該依賴低層模塊。兩個都應該依賴抽象。
B.抽象不應該依賴細節。細節應該依賴抽象。
簡單的說 就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。
裏式轉換原則
課本定義:子類型必須能夠替換掉它們的父類型。
可以理解爲: 只要有父類出現的地方,都可以使用子類來替代。而且不會出現任何錯誤或者異常。但是反過來卻不行。子類出現的地方,不能使用父類來替代。
接口隔離原則
- 客戶端不應該依賴它不需要的接口
- 類間的依賴關係應該建立在最小的接口上
迪米特法則
課本定義:如果兩個類不必直接通信,那麼這兩個類就不應該當發生直接的相互作用,如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。
就是 不和陌生人說話。找一箇中間人 去辦事。