C# 設計模式一一六大基本原則

一、單一職責原則

定義:不要存在多於一個導致類變更的原因。通俗的說,即一個類只負責一項職責。 
問題由來:類T負責兩個不同的職責:職責P1,職責P2。當由於職責P1需求發生改變而需要修改類T時,有可能會導致原本運行正常的職責P2功能發生故障。

解決方案:遵循單一職責原則。分別建立兩個類T1、T2,使T1完成職責P1功能,T2完成職責P2功能。這樣,當修改類T1時,不會使職責P2發生故障風險;同理,當修改T2時,也不會使職責P1發生故障風險。

遵循單一職責原的優點有:

  • 可以降低類的複雜度,一個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多;
  • 提高類的可讀性,提高系統的可維護性;
  • 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。

二、里氏替換原則

定義:原則上來講,子類對象可以賦給父類對象,也可以說子類替換父類,並且出現在父類能夠出現的任何地方。反過來說,父類對象是不能替換子類對象的,這種特性稱爲里氏替換原則

參考文章:https://blog.csdn.net/yisuowushinian/article/details/18976629

三、開放-封閉原則

定義:是說軟件實體(類、模塊、函數等等)應該可以擴展,但是不可修改。

特徵:對於擴展是開放的,對於更改是封閉的

也就是說:面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現有的代碼。

       當變化發生時,我們通過創建抽象來隔離以後發生的同類變化,比如之前我們介紹的簡單工廠模式中的實現兩個數的運算的示例,示例就是通過抽象運算方法來對變化(增加乘除運算方法)進行擴展---開放性,而不是更改現有的代碼(現有的加減運算方法)---封閉性。

參考文章:https://blog.csdn.net/yabay2208/article/details/73927991

四、依賴倒轉原則

定義:高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。抽象不應該依賴細節,細節應該依賴抽象。

參考文章:

https://blog.csdn.net/fightfaith/article/details/49556053

http://www.10tiao.com/html/396/201809/2650825669/1.html

五、迪米特法則

 

 

參考文章:http://www.uml.org.cn/sjms/201211023.asp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章