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