分類 | 設計模式 | 簡述 | 一句話歸納 | 目的 | 生活案例 |
---|---|---|---|---|---|
建立型設計模式 (簡單來說就是用來建立物件的) |
工廠模式(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) | 允許物件組合實現與繼承相同的程式碼重用,負責任務的呼叫和分配 | 這個需求很簡單,怎麼實現我不管 | 只對結果負責 | 授權委託書 |