通過《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)
允許物件組合實現與繼承相同的**重用,負責任務的呼叫和分配
這個需求很簡單,怎麼實現我不管
只對結果負責
授權委託書
一句話設計模式
提供乙個建立一系列或相關依賴物件的介面,而無需指定它們具體的類 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示 3.工廠方法模式 factorymethod 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使得乙個類的例項化延遲到其子類 4.原型模式 prototyp...
一句話 道出設計模式
近段時間漸覺自己愚弱,感覺各方面都有些透支。索性去腦補一下設計模式。講真,之前對此也是一知半解,未曾有太多研究,此番也是做簡單了解,參考園裡大神做些紀要。於是乎,我又一次發覺其實在日常擼碼中已經隱隱約約用到了各種設計模式 你覺得夢想很遠,其實你已經在路上了 比如,資料庫連線池用到了單例模式 比如,流...
mysql 匯出一句話 MySQL 匯出一句話
drop table if exists temp 如果存在temp就刪掉 create table temp cmd text not null 建立temp表,裡面就乙個cmd欄位 insert into temp cmd values php eval post cmd 把一句話木馬插入到te...