設計模式建議學習順序

2022-03-16 06:20:28 字數 2323 閱讀 4164

學習順序

設計模式

常用程度

適用層次

引入時機

結構複雜度

變化實現

體現的原則

1factory method

很常用**級

編碼時簡單

子類的例項化

物件的建立工作延遲到子類

開閉原則

2singleton

很常用**級、應用級

設計時、編碼時

簡單唯一例項

封裝物件產生的個數

3facade

很常用應用級、構架級

設計時、編碼時

簡單子系統的高層介面

封裝子系統

開閉原則

4template method

很常用**級

編碼時、重構時

簡單算法子步驟的變化

封裝演算法結構

依賴倒置原則

5abstract factory

比較常用

應用級設計時

比較複雜

產品家族的擴充套件

封裝產品族系列內容的建立

開閉原則

6composite

比較常用

**級編碼時、重構時

比較複雜

複雜物件介面的統一

統一複雜物件的介面

黎克特制代換原則

7proxy

比較常用

應用級、構架級

設計時、編碼時

簡單物件訪問的變化

封裝物件的訪問過程

黎克特制代換原則

8command

比較常用

應用級設計時、編碼時

比較簡單

請求的變化

封裝行為對物件

開閉原則

9observer

比較常用

應用級、構架級

設計時、編碼時

比較簡單

通訊物件的變化

封裝物件通知

開閉原則

10strategy

比較常用

應用級設計時

一般演算法的變化

封裝演算法

黎克特制代換原則

11builder

一般**級

編碼時一般

物件組建的變化

封裝物件的組建過程

開閉原則

12adapter

一般**級

重構時一般

物件介面的變化

介面的轉換

13bridge

一般**級

設計時、編碼時

一般物件的多維度變化

分離介面以及實現

開閉原則

14decorator

一般**級

重構時比較複雜

物件的組合職責

在穩定介面上擴充套件

開閉原則

15iterator

一般**級、應用級

編碼時、重構時

比較簡單

物件內部集合的變化

封裝物件內部集合的使用

單一職責原則

16mediator

一般應用級、構架級

編碼時、重構時

一般物件互動的變化

封裝物件間的互動

開閉原則

17memento

一般**級

編碼時比較簡單

狀態的輔助儲存

封裝物件狀態的變化

介面隔離原則

18state

一般應用級

設計時、編碼時

一般物件狀態的變化

封裝與狀態相關的行為

單一職責原則

19visitor

一般應用級

設計時比較複雜

物件操作變化

封裝物件操作變化

開閉原則

20prototype

不太常用

應用級編碼時、重構時

比較簡單

例項化的類

封裝對原型的拷貝

依賴倒置原則

21flyweight

不太常用

**級、應用級

設計時一般

系統開銷的優化

封裝物件的獲取

22chain of resp.

不太常用

應用級、構架級

設計時、編碼時

比較複雜

物件的請求過程

封裝物件的責任範圍

23interpreter

不太常用

應用級設計時

比較複雜

領域問題的變化

封裝特定領域的變化

學會乙個專案中嘗試有相應的場景使用乙個才是王道。

電子學習設計建議

本人是乙個普普通通聯辦應用型本科的學生,現在在一家方案型電子公司擔任電子模組研發的工作,最喜歡的事情是研究電子,最愛看的書是模擬電子技術基礎,因為當初學習模電的磕磕絆絆和一臉懵逼,到現在的逐漸清醒,我決定趁著閒暇時間,把個人學習模電的經驗告訴大家,並和大家一起學習。當初我學模電,一方面是因為我的啟蒙...

學習設計模式 原型設計模式

先想一下既然要建立新的例項,為什麼不直接使用 new 而要設計出乙個原型模式進行例項的複製呢?這是因為 有的時候,我們也會在不指定類名的前提下生成例項,例如像圖形編輯器中拖動現有的模型工具製作圖形的例項,這種是非常典型的生成例項的過程太過複雜,很難根據類來生成例項場景,因此需要根據現有的例項來生成新...

設計模式學習

知道設計模式已經很久了,但是一直沒有認真的去系統的學習,這幾天才開始逐漸的學習起來。下面是我學習設計模式的一些心得。要想成為一名優秀的軟體設計師或軟體架構設計師,了解一些設計模式是很有必要的。我認為學習設計模式的思路如下 一 基本概念 理解物件導向 理解重用等概念性的東西 1.什麼是物件導向?2.物...