設計模式六大原則

2021-10-09 05:27:43 字數 1140 閱讀 3778

1.  單一職責原則(single responsibility principle)

方法的單一職責:乙個方法只負責一件事兒,(根據職責分拆小方法,避免分支邏輯判斷)

類的單一職責:乙個類只負責一件事兒

類庫的單一職責: 乙個類庫應該職責清晰

系統層面的單一職責:為通用的功能分拆系統

類t負責兩個不同的職責:職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。 這就違背了單一職責。

2.  黎克特制替換原則(liskov substitution principle)

任何使用基類的地方,都可以透明的使用其子類

1) 父類有的,子類是必須有的;

如果出現子類不應該有的東西,那就需要斷掉繼承;

(可以再來乙個父類,在這個父類裡面只包含應該有的東西)

2) 子類可以擁有自己的屬性和行為

子類出現的地方  父類不一定能夠代替

我喜歡小動物,我一定喜歡狗狗,

如果我喜歡狗狗,卻不一定喜歡小動物

3)  父類實現的東西,子類就不要再寫 (就是避免使用new 關鍵字隱藏)

使用了這個關鍵字以後可能會出現點意外

建議使用抽象類 或者虛方法 來進行修改父類的行為

3.  迪公尺特法則  (law of demeter)

乙個物件應該對其他物件保持最少的了解。只與直接的朋友通訊。

依賴別人更少,也讓別人了解的更少!高內聚低耦合!

4.  依賴倒置原則(dependence inversion principle)

上層模組不應該依賴於低層模組,二者應該通過抽象依賴 

核心就是讓我們如何面向抽象程式設計

5.  介面隔離原則(inte***ce segregation principle) 

客戶端不應該依賴它不需要的介面;

乙個類對另乙個類的依賴應該建立在最小的介面上;

6.  開閉原則    (open closed principle) 

對擴充套件開發,對修改關閉

修改: 修改**  不允許

擴充套件: 增加**

物件導向開發中,比較推崇:無論是修改功能,還是新增功能,都通過新增類來實現!從   而達到乙個**穩定的效果 

c# 是靜態語言,最小粒度到類!

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

0.05 設計模式 設計模式 規範 筆記 大話設計模式 物件導向的關鍵在於封裝,封裝好了才能很好的復用,達到單一職責和開放擴充套件 封閉更改的效果。1 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因.增加功能不應該修改已有的 避免修改出錯及重複測試.如果你能夠想到多於乙個的動機去改變乙個類...

設計模式六大原則

參考文章 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。開閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開放,對修改關閉。...