設計模式之六大原則
設計模式是什麼
設計模式是一套理論,是軟體界的先輩們總結出的一套可以反覆使用的經驗。它可以提高程式碼的可重用性,增強系統的可維護性,以及解決一系列的複雜問題。
在學習設計模式之前,先要明白六大設計原則,設計模式是在六大設計原則上的實踐。
單一職責原則
- 單一職責的定義是:應該有且僅有一個原因引起類的變更
- 單一職責的好處:
- 類的複雜度降低,實現什麼職責都有清晰明確的定義
- 可讀性提高
- 可維護性提高
- 變更引起風險降低
- 在寫程式碼的時候,儘量做到單一職責。但職責的劃分很難確認,要根據環境、專案、資源等而定,但還是儘量做到類的設計只有一個原因引起變化。
里氏替換原則
- 裡式替換原則的定義:只要父類能出現的地方子類就可以出現,而且替代為子類也不會產生任何錯誤和異常,使用者可能根本不需要知道誰是父類誰是子類。但是,反過來就不行了,有子類出現的地方,父類未必能適應。
- 裡式替換原則的目的就是增強程式的健壯性,版本升級時也可以保持非常好的相容性。即使增加子類,原有的子類還可以繼續執行。
依賴倒置原則
- 依賴倒置的表現:
- 模組間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或抽象類產生的。
- 介面或抽象類不依賴於實現類。
- 實現類依賴介面或抽象類。
更加精簡的定位是“面向介面程式設計”
- 採用依賴倒置原則可以減少類間的耦合性,提高系統的穩定性,降低並行開發引起的風險,提高程式碼的可讀性和可維護性。
- 依賴倒置原則的本質就是通過抽象使各個類或模組的實現彼此獨立,不互相影響,實現模組間的鬆耦合。核心就是“面向介面程式設計”
為什麼叫“倒置”,首先說“正置”是什麼意思,依賴正置就是類間的依賴是實實在在的實現類間的依賴,也就是面向實現程式設計,也是正常生活的思維,要開車就依賴車,要用電腦就依賴電腦,而編寫程式需要對現實世界的事物進行抽象,抽象的結果就是有了抽象類和介面,然後我們根據系統設計的需要產生了抽象間的依賴,代替了人們傳統思維中的事物間的依賴,“倒置”就是從這裡產生的。
介面隔離原則
- 介面隔離原則的定義:
- 客戶端不應該依賴它不需要的介面
- 類間的依賴關係應該建立在最小的介面上
總結一句話是:建立單一介面,不要建立臃腫龐大的介面。再通俗點就是:介面儘量細化,同時介面的方法儘量少。
介面隔離原則和單一職責原則是相同的嗎?
是不同的。單一職責注重的是職責,要求職責單一,屬於業務邏輯上的劃分。介面隔離原則要求介面的方法儘量少,當二者發生衝突時,首先滿足單一職責原則。
- 介面隔離原則也就是要做到高內聚。
- 介面的設計粒度越小,系統越靈活,但是靈活的同時也帶來了結構的複雜化,開發難度增加,可維護性降低。需要深入瞭解業務邏輯,根據經驗和常識決定介面的粒度大小,太小增加開發工作量,太大靈活度降低。
迪米特法則
- 迪米特法則:一個物件應該對其他複習有最少的瞭解。
- 迪米特法則的核心觀念就是類間的解耦,弱耦合,類的複用率才可以提供。如果一個方法放在本壘中,既不增加類間關係,也不對本類產生負面影響,那就放置在本類中。
開閉原則
- 開閉原則定義:軟體實體應該對擴充套件開放,對修改關閉。
- 開閉原則的好處:
- 可以減少測試的工作量
- 可以提高複用性
- 可以提高可維護性
- 物件導向開發的要求
相關文章
- 設計模式-六大原則設計模式
- 設計模式——六大原則設計模式
- 設計模式六大原則設計模式
- 設計模式六大原則(六)----開閉原則設計模式
- 設計模式的六大原則設計模式
- Python設計模式六大原則!Python設計模式
- 設計模式六大原則詳解設計模式
- 設計模式之7大原則設計模式
- 設計模式“6”大原則!設計模式
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式六大原則(五)----迪米特法則設計模式
- 聊一聊設計模式(一)-- 六大原則設計模式
- 設計模式的分類和六大原則設計模式
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計模式 -- 設計模式七大原則設計模式
- 設計類六大原則
- 設計模式七大原則設計模式
- 設計模式:物件導向設計的六大原則 (絕對詳細)設計模式物件
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 婚戀app原始碼設計模式六大原則有哪些?APP原始碼設計模式
- Python設計模式的六大原則分別是什麼?Python設計模式
- 設計模式的七大原則設計模式
- 好程式設計師Java培訓分享Java設計模式的六大原則程式設計師Java設計模式
- OA系統設計的六大原則
- Java的設計模式和6大原則Java設計模式
- 設計模式六大設計原則設計模式
- 設計模式-六大設計原則設計模式
- 設計模式的七大原則詳解設計模式
- 設計模式的七大原則(5) --開閉原則設計模式
- 六大原則
- 設計模式的七大原則(6) --迪米特法則設計模式
- 設計模式的七大原則(4) --里氏替換原則設計模式
- 設計模式的七大原則(2) --介面隔離原則設計模式
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- Javascript 設計模式之設計原則JavaScript設計模式
- 設計模式的七大原則(1) --單一職責原則設計模式
- 好程式設計師Java教程分享Java設計模式的6大原則程式設計師Java設計模式