23種設計模式概述(分類和原則)

2021-09-25 05:43:16 字數 1522 閱讀 9833

設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類的、**設計經驗的總結。

使用設計模式的目的:為了**可重用性、讓**更容易被他人理解、保證**可靠性。 設計模式使**編寫真正工程化;設計模式是[軟體工程]的基石脈絡。

建立型模式:5鐘,物件例項化的模式,建立型模式用於解耦物件的例項化過程。

工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構性模式:7種,把類或物件結合在一起形成乙個更大的結構。

介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式:11種,類和物件如何互動,及劃分責任和演算法。

策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式

狀態模式、訪問者模式、中介者模式、直譯器模式。

總原則:開閉原則

開閉原則就是說對外擴充套件開放,對修改關閉。當程式需要擴充套件的時候,不去修改原有的**,而是要擴充套件原有**,實現乙個熱插拔的效果。為了達到這樣的效果,需要實現抽象類和介面等。

1,單一責任原則

不要存在多於乙個導致類變更的原因,也就是說每個類應該實現單一的職責,如若不然,就應該把類拆分。

2,黎克特制替換原則

黎克特制代換原則(liskov substitution principle lsp)物件導向設計的基本原則之一。 黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。 lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。黎克特制代換原則是對「開-閉」原則的補充。實現「開-閉」原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以黎克特制代換原則是對實現抽象化的具體步驟的規範

黎克特制替換中,子類對父類的方法經量不要重寫和過載,因為弗雷定義好了結構,通過規定的介面與外界互動,子類不應該隨便的破壞它。

3,依賴倒轉原則

這個是開閉原則的基礎,具體內容:面向介面程式設計,依賴於抽象而不依賴於具體。寫**時用到具體類時,不與具體類互動,而與具體類的上層接**互

4,介面隔離原則(inte***ce segregation principle)

這個原則的意思是:每個介面中不存在子類用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的介面,比使用單個介面(多個介面方法集合到乙個的介面)要好。

5,迪公尺特法則(最少知道原則)

就是說:乙個類對自己依賴的類知道的越少越好。也就是說無論被依賴的類多麼複雜,都應該將邏輯封裝在方法的內部,通過public方法提供給外部。這樣當被依賴的類變化時,才能最小的影響該類。也就是說要求陌生的類不要作為區域性變數出現在類中,

6,合成復用原則:

意思就是經量首先使用合成/聚合的方式,而不是使用繼承。

基礎知識:

1,介面和抽象類

介面:inte***ce 介面僅是方法定義和常量值定義的介面,方法沒有函式體。

抽象類:abstract 可定義普通類包含的所有內容,還可以定義抽象方法。

介面抽象類本身不能實列化,必須在相應的子類中實現抽象方法,才能獲得應用。

23種設計模式C 例項之概述和設計原則

1 建立型 5種 2 結構型 7種 3 行為型模式 11種 solid原則 不要存在多於乙個導致類變更的原因,也就是說每個類應該實現單一的職責,如若不然,就應該把類拆分。開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的 而是要擴充套件原有 實現乙個熱插拔的效果。所...

23種設計模式 概述

單例 singleton 模式 某個類只能生成乙個例項,該類提供了乙個全域性訪問點供外部獲取該例項,其拓展是有限多例模式。原型 prototype 模式 將乙個物件作為原型,通過對其進行複製而轉殖出多個和原型類似的新例項。工廠方法 factory method 模式 定義乙個用於建立產品的介面,由子...

23種設計模式概述

在我們軟體開發的過程中往往會遇到需求的變更,導致我們的功能需要的改變,進而可能讓我們辛辛苦苦編寫的大量 付諸東流。那麼,該怎樣提高我們 的可擴充套件性呢。提高我們 的擴充套件性這樣在改變功能的時候就能在最小代價的情況修改我們的 設計模式,就很大程度上為我們解決了這個問題。設計模式是一套理論,由前任總...