【圖解設計模式系列】23句話總結23種設計模式

Tech In Pieces發表於2020-12-28

首先 我們為什麼需要設計模式?

其實 我們不需要把他們想象成一個很複雜很高階的東西。這些東西其實都是經驗之談,經過了千千萬萬程式設計師的總結思考得出來的。如果你寫的程式碼足夠多,自然你也會思考如何讓程式碼寫的更清楚。所以這些設計模式是為了更好的讓我們上手寫出更整潔優秀的程式碼,所以 設計模式不是不變的 而是隨著時代的變化而變化,有一些新的設計模式被提出來 有一些舊的設計模式很少用。
所以總結性的來說 我們需要設計模式 是因為我們想把程式碼寫的:降低物件之間的耦合,增加程式的可複用性、可擴充套件性、可維護性。

設計模式有哪些分類?

建立者模式:用來建立物件
結構型模式:主要是描述類或者物件是怎樣互動和怎樣分配職責的。
行為型模式:用於處理類或者物件的組合
這些分類看上去還是很抽象。

具體分類

建立者模式

單例模式:確保某一個類只有一個例項,並且提供一個全域性訪問點。
建造者模式: 用來建立複雜的複合物件。
工廠方法模式 :讓子類來決定要建立哪個物件。
抽象工廠模式:建立多個產品族中的產品物件。
原型模式:通過複製原型來建立新物件。

行為型模式

策略模式:封裝不同的演算法,演算法之間能互相替換。
狀態模式:根據不同的狀態做出不同的行為。
責任連模式:將事件沿著鏈去處理。
觀察者模式:狀態發生改變時通知觀察者,一對多的關係。
模板方法模式:定義一套流程模板,根據需要實現模板中的操作。
迭代器模式:提供一種方法順序訪問一個聚合物件中的各個元素。
備忘錄模式:儲存物件的狀態,在需要時進行恢復。
訪問者模式:穩定資料結構中,定義新的操作行為。
中介者模式:將網狀結構轉變為星型結構,所有行為都通過中介。
直譯器模式:定義語法,並對其進行解釋。
命令模式 :將請求封裝成命令,並記錄下來,能夠撤銷與重做。

結構型模式

外觀模式、橋接模式、組合模式、享元模式。
代理模式 :控制客戶端對物件的訪問。
組合模式:將整體與區域性(樹形結構)進行遞迴組合,讓客戶端能夠以一種的方式對其進行處理。
介面卡模式:將原來不相容的兩個類融合在一起。
裝飾者模式 :為物件新增新功能。
享元模式:使用物件池來減少重複物件的建立。
外觀模式 :對外提供一個統一的介面用來訪問子系統。
橋接模式:將兩個能夠獨立變化的部分分離開來。

另外,除了這23種經典的設計模式,還湧現出其他的一些新的設計模式,比如:規格模式、物件池模式、僱工模式、黑板模式和空物件模式等等。後面有時間的話也會對這些模式進行分析。

相關文章