設計模式拓展-設計模式6大原則

參考文章:https://blog.csdn.net/qq_40123329/article/details/95750112

設計模式的六大原則是什麼

單一職責原則

里氏替換原則

依賴倒置原則

接口隔離原則

迪米特原則

開閉原則

什麼是單一職責:

一個類只負責一項職責,儘量做到類的只有一個行爲原因引起變化;

  a、業務對象(BO business object)、業務邏輯(BL business logic)拆分;(根據我的理解就是一個類只做一件事情,比如這個類只生產鼠標,就別加鍵盤,主機這些功能)

當職能擴散時可以適度違背單一職能原則,方法是:

只有邏輯足夠簡單,纔可以在代碼級別上違反單一職責原則;只有類中方法數量足夠少,纔可以在方法級別上違反單一職責原則;(什麼叫職能擴散,就是在後期在該功能的基礎上又細分職能)

什麼是里氏替換原則;

子類型必須可以替換掉它們的父類型。子類可以擴展父類的功能,但不能改變父類原有的功能。

什麼是依賴倒置原則:

(1)高層模塊不應該依賴於低層模塊,2個都應該依賴於抽象。

(2)抽象不應該依賴於細節,細節應該依賴抽象。

什麼是接口隔離原則:

客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。

什麼是迪米特原則:

如果2個類不必彼此直接通信,那麼這2個類不應當發生直接的相互作用,如果其中的一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。前提是在類的結構設計上,每一個類都應該儘量降低成員的訪問權限。

迪米特原則的根本在於強調了類之間的鬆耦合。類之間的耦合越弱,越有利於複用,一個處在弱耦合的類被修改,不會對有關係的類造成波及。

不要和“陌生人”說話、只與你的直接朋友通信等,在迪米特法則中,對於一個對象,其朋友包括以下幾類:

      (1) 當前對象本身(this);

      (2) 以參數形式傳入到當前對象方法中的對象;

      (3) 當前對象的成員對象;

      (4) 如果當前對象的成員對象是一個集合,那麼集合中的元素也都是朋友;

      (5) 當前對象所創建的對象。

什麼是開閉原則

軟件實體(類,模塊,函數)應該可以擴展,但是不可以修改。即對於擴展是開放的,對於更改是封閉的。

面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現有的代碼。開放-封閉原則是面向對象設計的核心所在,遵循這個原則可以使系統可維護,可擴展,可複用,靈活性好。

開閉原則無非就是想表達這樣一層意思:用抽象構建框架,用實現擴展細節。因爲抽象靈活性好,適應性廣,只要抽象的合理,可以基本保持軟件架構的穩定。而軟件中易變的細節,我們用從抽象派生的實現類來進行擴展,當軟件需要發生變化時,我們只需要根據需求重新派生一個實現類來擴展就可以了。當然前提是我們的抽象要合理,要對需求的變更有前瞻性和預見性才行。
說到這裏,再回想一下前面說的5項原則,恰恰是告訴我們用抽象構建框架,用實現擴展細節的注意事項而已單一職責原則告訴我們實現類要職責單一;里氏替換原則告訴我們不要破壞繼承體系;依賴倒置原則告訴我們要面向接口編程;接口隔離原則告訴我們在設計接口的時候要精簡單一;迪米特法則告訴我們要降低耦合。而開閉原則是總綱,他告訴我們要對擴展開放,對修改關閉
 

 

 

發佈了12 篇原創文章 · 獲贊 0 · 訪問量 722
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章