知識學習 設計模式的六大設計原則

2021-08-11 18:01:27 字數 1644 閱讀 2262

核心思想:每乙個物件應該只有乙個單獨的職責,每個物件所關注的就是自身職責的完成。

單一職責原則的意思就是「高聚合,低耦合」。每個類只有乙個職責,對外只提供乙個功能,引起類變化的原因就只有乙個。

乙個類的職責越多,導致其變化的因素也就越多,其中乙個職責變化時,可能會影響其他職責的運作,因此要將這些職責進行分離,將不同的職責封裝在不同的類中,即將不同的變化原因封裝在不同的類中,如果多個職責總是同時發生改變則可將它們封裝在同一類中。

這樣做會讓程式變的易於修改和維護。但這個過程可能是困難的,因為我們不能輕易的知道哪些職責會發生變化,哪些職責要被提取出來。所以需要乙個演化的過程,讓我們知道哪些職責需要被提取出來。

核心思想:在任何父類出現的地方都可以用它的子類替代。

黎克特制替換原則的意思就是同乙個繼承體系中的物件都應該有共同的行為特徵。lsp所關注的是怎樣良好的使用繼承。在lsp裡,所有引用基類的地方必須能透明的使用其子類物件。這個原則為良好的繼承定義了乙個規範,共有四層含義:

1. 子類必須完全實現父類的方法

2. 子類可以有自己的特性

3. 覆蓋或實現父類的方法輸入的引數可以被放大

4. 覆蓋或實現父類的方法輸出的引數可以被放大

核心思想:要依賴於抽象,不要依賴於具體的實現。

依賴注入原則的意思就是在應用程式中,所有的類如果要使用其他的類或者依賴其他是類,都應該依賴他們的抽象類,而不是實現類,這樣才能保證系統的可復用性和可維護性。所以我們在日常開發中要針對介面程式設計,而不是針對實現程式設計。

依賴注入原則有三點說明:

- 高層模組不應該依賴低層模組,兩者都應該依賴於抽象

- 抽象不應該依賴細節

- 細節應該依賴抽象

依賴注入原則可以用以下三種方式來實現:

- 通過構造方法傳遞依賴物件

- 通過set方法傳遞依賴物件

- 介面宣告實現依賴物件

核心思想:不應該強迫客戶程式依賴他們不需要的使用的方法。

介面隔離原則的意思就是乙個介面不需要提供太多的行為,乙個介面應該只提供一種對外的功能,不應該把所有的操作封裝在乙個介面中。這裡的介面不僅僅是指類介面(class inte***ce),還指物件介面(object inte***ce)通過new關鍵字產生的乙個例項,它是對乙個型別的事務的描述。

介面隔離原則和單一職責原則有一些相似,不過單一職責原則注重的是職責,是業務邏輯的劃分。而介面隔離原則要求的是介面的方法盡量少。

在使用介面分離原則的時候也有一些規範:

- 介面盡量小

- 介面高內聚介面內部宣告的方法相互之間都要與某個子模組相關,而且這個子模組是必須的

- 介面設計是有限度的,要靠開發者的經驗去判斷了

核心思想:乙個物件應當對其他物件盡可能少了解。

迪公尺特原則的意思就是降低各個物件之間的耦合,提高系統的可維護性。在模組之間,應該只通過介面來通訊,這可使各個模組耦合程度降到最低,促進軟體的復用。

核心思想:乙個物件對擴充套件開放,對修改關閉。

開閉原則的意思就是對類的改動是通過增加**實現的,而不是改動原先的**。

設計模式 六大設計原則

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

設計模式 六大設計原則

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

設計模式的六大設計原則

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