一、一句話歸納
分類 | 設計模式 | 簡述 | 一句話歸納 | 目的 | 生活案例 |
建立型設計模式 (簡單來說就是用來建立對象的) | 工廠模式(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) | 允許對象組合實作與繼承相同的代碼重用,負責任務的調用和配置設定 | 這個需求很簡單,怎麼實作我不管 | 隻對結果負責 | 授權委托書 | |
管道模式(Pipeline) | 将複雜的處理流程分解成獨立的子任務,分而治之,反過來了解,将獨立的小功能通過管道連接配接成流水線,組成複雜的功能,它由責任鍊模式演變而來,可了解為不純的責任鍊 | 每人負責流水線的一道工序 | 分而治之 | 生産流水線 |
二、代理模式、橋接模式、中介者模式對比
代理模式 | 一對一,單向通路 |
橋接模式 | 一對多,單向通路 |
中介模式 | 多對多,雙向通路 |
參考:http://c.biancheng.net/view/8462.html,同時根據個人了解調整和添加了部分模式