设计模式总结 (1)模式分类
生活随笔
收集整理的這篇文章主要介紹了
设计模式总结 (1)模式分类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
模式前面的序號是模式在《研磨設(shè)計模式》一書中的序號。
| 創(chuàng)建型 | |
| 2.簡單工廠 | Factory 有一個createApi函數(shù),傳入不同的type,創(chuàng)建和調(diào)用不同的類:ImplA或ImplB。 |
| 3. 外觀模式 | (多個子模塊封裝成一個模塊) |
| 6. 工廠 | 父類在不知道具體實現(xiàn)的情況下, 完成自身的功能調(diào)用; 而具體的實現(xiàn)延遲到子類來實現(xiàn) |
| 7. 抽象工廠 | 產(chǎn)品族,類層次復(fù)雜eg.多種cpu,多種主板 |
| 8.生成器 | 生成文件:頭,中間,尾。有兩種方式生成:txt,xml |
| 創(chuàng)建內(nèi)存型 | |
| 5. 單例 | |
| 9.原型 | 訂單拆分,克隆生成對象:不是創(chuàng)建新的對象實例,而是一個方法創(chuàng)建多個自己的對象 |
| 20. 享元模式 | 減少創(chuàng)建對象的數(shù)量,以減少內(nèi)存,細(xì)粒度對象 |
| 結(jié)構(gòu)型 | |
| 4. 適配器 | 文件讀寫,數(shù)據(jù)庫讀寫 |
| 11. 代理模式 | (代理對象可以做一些事情,查詢某個姓名的數(shù)據(jù),而不是所有數(shù)據(jù)):需要查詢所有用戶數(shù)據(jù),不能翻頁都顯示出來,只顯示姓名,在需要的情況下,點擊某個用戶的姓名出現(xiàn)詳細(xì)信息 |
| 13. 命令模式 | 命令發(fā)送,命令接收,命令invoker |
| 15. 組合模式 | 葉子和節(jié)點,引用關(guān)系,將葉子和節(jié)點都設(shè)計為一個類 |
| 24 橋接模式 | 二維對象抽象,分成一個抽象,一個實現(xiàn),抽象類增加后的功能可以放在實現(xiàn)類中 |
| 25 訪問者模式 | 有個多個數(shù)據(jù)需要進(jìn)行統(tǒng)一處理,設(shè)計處理動作為放問者類 ,依次對每個被訪問者進(jìn)行訪問,而訪問的操作也有所不同 |
| 行為型 | |
| 10 中介者 | 顯卡、聲卡,光驅(qū)(同一個基類)都跟主板進(jìn)行數(shù)據(jù)交互:主板調(diào)用某個對象來進(jìn)行相應(yīng)的操作 |
| 12. 觀察者模式 | 消息通知 |
| 14. 迭代器模式 | (迭代器基類)std::vector容器 |
| 16 模板 | 基類相同,功能不同派生(把模板實現(xiàn)成為抽象類,為所有的子類提供了公共的功能,就是 定義了具體的算法骨架;) |
| 17. 策略模式 | (content上下文,多個策略類、多個上下文)eg. 加法、乘法、除法,本質(zhì)上是分離算法,選擇實現(xiàn) |
| 18. 狀態(tài)模式 | 多個狀態(tài) |
| 19. 備忘錄 | careTaker通過中間人originator保存對象memento(保存對象狀態(tài)、恢復(fù)狀態(tài)), memento是內(nèi)存變量,careTaker的保存和恢復(fù)可能是數(shù)據(jù)io。eg.undo/redo |
| 21 解釋器 | (讀取xml文件,抽象語法樹,葉子類,節(jié)點類,context上下文,進(jìn)一步地,parse"a/b/c/d"), eg.加法、除法,or |
| 22 裝飾模式 | (類是多層疊加派生),擴(kuò)展功能.eg. 畫像加框,又加玻璃,eg. 形狀,圓,直線,畫形狀,畫紅色的形狀 |
| 23. 責(zé)任鏈 | 一個消息,多個處理類,每個類可以有下一個處理對象 |
總結(jié)
以上是生活随笔為你收集整理的设计模式总结 (1)模式分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EOS 源代码解读 (2)插件-流程
- 下一篇: 设计模式总结 (2)创建型模式