天天看點

一句話歸納設計模式

 一、一句話歸納

分類 設計模式 簡述 一句話歸納 目的 生活案例

建立型設計模式

(簡單來說就是用來建立對象的)

工廠模式(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,同時根據個人了解調整和添加了部分模式

繼續閱讀