最近在讀gof的design patterns: elements of reusable object-oriented software(設計模式:可復用物件導向軟體的基礎),學習前輩們的經驗來增加自己的編碼設計能力。在學習的過程中,會把我從書上學到的知識以及自己的理解寫到這裡。一方面能夠鞏固自己學到的東西同時方便以後的複習,另一方面是希望能夠幫助到那些跟我一樣不大了解設計模式的人。
在學習的過程中會發現,在我們日常工作中不知不覺就已經使用了很多設計模式。我理解的設計模式不是一套固定的**,更多的是一種設計理念。它能夠幫助我們解決特定的設計問題,使我們的程式更加靈活、優雅以及更高的復用性。但它也不是完美的,只是在特定需求、特定問題下最理想的解決方案。
文章中的示例均使用.net,不同開發語言的實現方式可能有所不同。
[1] - 工廠方法 (factory method)
[2] - 抽象工廠 (abstract factory)
[3] - 生成器 (builder)
[4] - 原型 (prototype)
[5] - 單件 (singleton)
[6] - 介面卡 (adapter)
[7] - 橋接 (bridge)
[8] - 組合 (composite)
[9] - 裝飾 (decorator)
[10] - 外觀 (facade)
[11] - 享元 (flyweight)
[12] - ** (proxy)
[13] - 職責鏈 (chain of responsibility)
[14] - 命令 (command)
[15] - 直譯器 (interpreter)
[16] - 迭代器 (iterator)
[17] - 中介者 (mediator)
[18] - 備忘錄 (memento)
[19] - 觀察者 (observer)
[20] - 狀態 (state)
[21] - 策略 (strategy)
[22] - 模板方法 (template method)
[23] - 訪問者 (visitor)
二十三種設計模式 羅列
1 工廠方法模式 factory method 2 抽象工廠模式 abstract factory 3 單例模式 singleton 4 建造者模式 builder 5 原型模式 prototype 6 介面卡模式 adapter 7 裝飾模式 decorator 8 模式 proxy 9 外觀模式...
二十三種設計模式之組合模式
組合模式 將物件聚合成樹形結構來表現 整體 部分 的層次結構。組合模式能讓客戶以一致的方式來處理個別物件以及物件組合。也就是我們可以忽略物件組合與個體之間的差別。應用場景 餐廳合併列印主選單 子選單 public abstract class menucomponent public string ...
二十三種設計模式之工廠模式
工廠模式的核心 例項化物件 原因 有些物件不能直接例項化,比如介面 抽象類及複雜物件的其他依賴 核心 呼叫工廠class的靜態方法例項化物件 以日誌為例 public class staticfactory 核心 先建立工廠物件,之後呼叫工廠方法 例項化工廠模式 public class insta...