1. 程式人生 > 其它 >設計模式--總結

設計模式--總結

通過《23種設計模式全面解析》教程,我們已經學習完了經典的 23 種設計模式。下面總結一下這 23 種設計模式,以方便小夥伴們日後複習和查閱。

分類設計模式簡述一句話歸納目的生活案例
建立型設計模式
(簡單來說就是用來建立物件的)
工廠模式(Factory Pattern) 不同條件下建立不同例項 產品標準化,生產更高效 封裝建立細節 實體工廠
單例模式(Singleton Pattern) 保證一個類僅有一個例項,並且提供一個全域性訪問點 世上只有一個我 保證獨一無二 CEO
原型模式(Prototype Pattern) 通過拷貝原型建立新的物件 拔一根猴毛,吹出千萬個 高效建立物件 克隆
建造者模式(Builder Pattern) 用來建立複雜的複合物件 高配中配和低配,想選哪配就哪配 開放個性配置步驟 選配
結構型設計模式
(關注類和物件的組合)
代理模式(Proxy Pattern) 為其他物件提供一種代理以控制對這個物件的訪問 沒有資源沒時間,得找別人來幫忙 增強職責 媒婆
外觀模式(Facade Pattern) 對外提供一個統一的介面用來訪問子系統 開啟一扇門,通向全世界 統一訪問入口 前臺
裝飾器模式(Decorator Pattern) 為物件新增新功能 他大舅他二舅都是他舅 靈活擴充套件、同宗同源 煎餅
享元模式(Flyweight Pattern) 使用物件池來減少重複物件的建立 優化資源配置,減少重複浪費 共享資源池 全國社保聯網
組合模式(Composite Pattern) 將整體與區域性(樹形結構)進行遞迴組合,讓客戶端能夠以一種的方式對其進行處理 人在一起叫團伙,心在一起叫團隊 統一整體和個體 組織架構樹
介面卡模式(Adapter Pattern) 將原來不相容的兩個類融合在一起 萬能充電器 相容轉換 電源適配
橋接模式(Bridge Pattern) 將兩個能夠獨立變化的部分分離開來 約定優於配置 不允許用繼承
行為型設計模式
(關注物件之間的通訊)
模板模式(Template Pattern) 定義一套流程模板,根據需要實現模板中的操作 流程全部標準化,需要微調請覆蓋 邏輯複用 把大象裝進冰箱
策略模式(Strategy Pattern) 封裝不同的演算法,演算法之間能互相替換 條條大道通羅馬,具體哪條你來定 把選擇權交給使用者 選擇支付方式
責任鏈模式(Chain of Responsibility Pattern) 攔截的類都實現統一介面,每個接收者都包含對下一個接收者的引用。將這些物件連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。 各人自掃門前雪,莫管他們瓦上霜 解耦處理邏輯 踢皮球
迭代器模式(Iterator Pattern) 提供一種方法順序訪問一個聚合物件中的各個元素 流水線上坐一天,每個包裹掃一遍 統一對集合的訪問方式 逐個檢票進站
命令模式(Command Pattern) 將請求封裝成命令,並記錄下來,能夠撤銷與重做 運籌帷幄之中,決勝千里之外 解耦請求和處理 遙控器
狀態模式(State Pattern) 根據不同的狀態做出不同的行為 狀態驅動行為,行為決定狀態 繫結狀態和行為 訂單狀態跟蹤
備忘錄模式(Memento Pattern) 儲存物件的狀態,在需要時進行恢復 失足不成千古恨,想重來時就重來 備份、後悔機制 草稿箱
中介者模式(Mediator Pattern) 將物件之間的通訊關聯關係封裝到一箇中介類中單獨處理,從而使其耦合鬆散 聯絡方式我給你,怎麼搞定我不管 統一管理網狀資源 朋友圈
直譯器模式(Interpreter Pattern) 給定一個語言,定義它的語法表示,並定義一個直譯器,這個直譯器使用該標識來解釋語言中的句子 我想說”方言“,一切解釋權都歸我 實現特定語法解析 摩斯密碼
觀察者模式(Observer Pattern) 狀態發生改變時通知觀察者,一對多的關係 到點就通知我 解耦觀察者與被觀察者 鬧鐘
訪問者模式(Visitor Pattern) 穩定資料結構,定義新的操作行為 橫看成嶺側成峰,遠近高低各不同 解耦資料結構和資料操作 KPI考核
委派模式(Delegate Pattern) 允許物件組合實現與繼承相同的程式碼重用,負責任務的呼叫和分配 這個需求很簡單,怎麼實現我不管 只對結果負責 授權委託書

ref:一句話歸納設計模式 (biancheng.net)