設計模式 六大設計原則總結

2022-09-01 06:39:06 字數 1397 閱讀 9459

六大設計原則(solid)包括:單一職責原則,黎克特制替換原則,依賴倒置原則,介面隔離原則,迪公尺特法則,開閉原則。

設計模式的乙個重點是面向介面程式設計,設計具有低耦合度的模組,使各個模組功能分明。在六大設計原則中,很多方面都體現了這些內容。在程式設計時,遵循這些點可以使**更容易讀和擴充套件,使**易於維護。遵循這些原則會使**更易維護,但很難在任何情況下都遵循這些,所以實際應用中,需要根據需求進行設計實現。

定義:應該有且僅有乙個原因引起類的變更。

根據單一職責原則,在設計類時,每個類應該只對應一類功能。如使用者類,應該將讀寫屬性的方法與業務邏輯方法分開設計。在實際應用中,類的設計不太容易做到單一職責,但可以將之應用於介面設計,如設計使用者類的多個介面,乙個介面宣告讀寫屬性(get、set),乙個介面宣告業務邏輯(add、update)。

定義:所有引用基類的地方必須能透明地使用其子類的物件。

繼承可以提供**的重用性和擴充套件性,但繼承可能導致更高的耦合性和降低靈活性。黎克特制替換原則指的是在編寫**過程中,類使用的時候,子類可以直接替換父類,但父類不能替換子類。在實際工程中,我們可能在實現乙個類之前先定義乙個介面,然後在這個介面的基礎上實現或擴充不同的類,其實這種設計方法就是遵循了黎克特制替換原則。除此之外,黎克特制替換原則還有更多的內容,但以上即主要內容。

定義:高層模組不應該依賴低層模組,兩者都應該依賴其抽象; 抽象不應該依賴細節; 細節應該依賴抽象。

採用依賴倒置原則時,實現類與實現類直接沒有直接依賴關係,其依賴關係通過介面實現,並且介面不依賴於實現類。該設計原則可以降低耦合性,提高**的可讀性和維護性。這裡的依賴不止是繼承關係。採用依賴倒置原則時,每個類都盡量設計乙個介面,並且具體類之間盡量不要有繼承關係,至少不能超過兩層繼承關係,盡量不要覆蓋基類或介面中已實現的方法。

定義:客戶端不應該依賴它不需要的介面。類間的依賴關係應該建立在最小的介面上。

介面隔離原則指的是,類的介面應該進行細化,裡面宣告的方法應該盡量少,避免介面的臃腫。根據這個原則,設計介面時,應該每個子模組對應乙個介面,而不是多個模組的方法放在乙個介面中。當然,並不是所有情況都適合採用介面隔離原則。

定義:乙個物件應該對其他物件有最少的了解。

迪公尺特法則的核心觀念是類間解耦,弱耦合,弱耦合可以提高類的復用率。類與類之間的關係建立在類間,乙個方法盡量不引入乙個類中不存在的物件。盡量不要存在太多的public方法和非靜態的public變數。

定義:乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。

開閉原則指,已經開發完成的專案或模組應該通過擴充套件來實現變化,而不是通過修改已有的**來實現變化。當乙個模組已經開發完成,並測試通過,如果需要在此基礎上進行改進,要通過擴充套件實現,而不是修改原來的**。當然,不修改原始碼,不是一點也不修改。開閉原則是一種指導思想,而不是具體的方案。

參考《設計模式之禪》

設計模式 六大設計原則

剛剛結束設計模式學習時,感覺哪哪的抓不住重點,雖然之前師傅給勾了寫比較重要的設計模式,但是給我的感覺設計模式怎麼全都乙個樣子。通過對一些文章的瀏覽,簡單的對設計原則總結了一下。設計模式,就是設計範例。是經典問題的解決方案,是可以讓學習者舉一反三的,有研究價值 有交流價值的例子。設計模式的本質是物件導...

設計模式 六大設計原則

solid s 單一職責原則 o 開放封閉原則 l 黎克特制代換原則 i 介面隔離原則 d 依賴倒轉原則 故事 手機拍攝ufo 定義 就乙個類而言,應該僅有乙個引起它變化的原因。通俗講就是我們不要讓乙個類承擔過多的職責。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或...

設計模式的六大設計原則

1 單一指責原則 single responsibility principle,srp 每個類的功能單一,不能多功能 2 黎克特制替換原則 liskov substitution principle lsp,lsp 1.子類必須完全實現父類的方法 2.子類可以有自己的個性 3.覆蓋或實現父類的方法...