C# 設計模式:適配器模式 (4) - 適用場景判斷與 Class/Object Adapter 實戰範例
何時使用適配器模式 系統需使用現有類但介面不符。 建立可重用類與多個無關類 (含未來新增) 協作。 Object Adapter 適用:需適配多個現有子類,若
C# 設計模式:享元模式 (1) - 核心概念、內在/外在狀態、編輯器應用與純享元結構
享元模式核心 Flyweight (拳擊蠅量級) → 「享元」意指輕量級物件。以共享高效支援大量細粒度物件。 關鍵:區分兩種狀態 狀態類型特性儲存位置 內
C# 設計模式:享元模式 (2) - 純享元結構性程式碼範例
結構性程式碼 (可編譯) Console.WriteLine($ConcreteFlyweight: intrinsic {intrinsicState},
C# 設計模式:享元模式 (3) - 複合享元模式結構與角色分析
複合享元結構 (UML) 五大角色 Flyweight (抽象享元):定義公共介面,需外在狀態的方法以參數傳入。不強制共享。 ConcreteFlywei
C# 設計模式:享元模式 (4) - 咖啡攤範例:純享元模式 (無外在狀態)
場景:咖啡攤無座位 客人自取咖啡離開,咖啡只有內在狀態 (風味),無環境因素 (外在狀態)。適合純享元模式:每種風味只建立一個物件共享。 完整程式碼 fla
C# 設計模式:享元模式 (5) - 咖啡廳範例:含外在狀態 (桌號) 的享元實作
場景升級:咖啡廳有桌號 咖啡攤無座位 → 咖啡廳有桌號。咖啡現在擁有外在狀態 (桌號),單純享元模式不再適用,需引入外在狀態參數。 完整程式碼 Number
C# 設計模式:行為模式 - 責任鏈模式 (2) - 角色定義、UML 結構與完整程式碼範例
角色定義 Handler (抽象處理者):定義 HandleRequest 介面,可含 SetSuccessor 設定下家。通常為抽象類或介面。 Concre
C# 設計模式:行為模式 - 責任鏈模式 (4) - 實作細節與鏈結構變體
核心說明 責任鏈模式不負責建立鏈結構,鏈的組裝由系統其他部分完成。 降低發送端與接收端耦合,多個物件有機會處理請求。 鏈結構可為線性、樹狀、環狀。下圖展示樹狀
C# 設計模式:原型模式 (1) - 孫悟空「身外身法」啟發、Clone 機制與 UML 結構
模式緣起:孫悟空身外身法 《西遊記》孫悟空拔毫毛吹氣變出百十個分身,各執鐵棒圍攻黃風怪。這正是原型模式核心:以一個原型物件為藍本,透過複製產生大量同類實例。
C# 設計模式:原型模式 (2) - 結構性程式碼與淺拷貝實作
結構性程式碼範例 (Prototype)MemberwiseClone(); } class Client { static void Main()
C# 設計模式:原型模式 (3) - 原型管理器模式完整實作 (ColorManager 範例)
帶 Prototype Manager 結構 (UML) Client:向管理器請求建立物件。 Prototype (抽象原型):定義 Clone(),通常
C# 設計模式:原型模式 (5) - 優缺點完整分析
優點 動態增減產品類:建立實例邏輯封裝在產品類內部,新增產品不影響整體結構。 簡化建立結構:無需如工廠方法模式般建立平行等級結構。 動態載入新功能:高獨立性使
C# 設計模式:裝飾模式 (2) - 結構性程式碼範例與包裝器式建構寫法
結構性程式碼 (完整可編譯) component?.Operation(); } class ConcreteDecoratorA : Decorator {
C# 設計模式:裝飾模式 (4) - 優缺點分析與實作簡化四大原則
優點 比繼承更靈活:執行期動態組合行為,無需靜態繼承階層爆炸。 排列組合產生多種行為變體:不同具體裝飾類順序組合產生不同效果。 缺點 類別數較少但物件數
C# 設計模式:裝飾模式 (6) - .NET 框架內建應用實例 (XmlTextWriter 裝飾 MemoryStream)
.NET 中的裝飾模式類別結構 實際應用:格式化輸出 XML 到記憶體串流 // 1. ConcreteComponent:記憶體串流 MemoryStre
C# 2.0 泛型實現單例模式重用 (1):從傳統單例到 SingletonProvider 泛型抽象
傳統單例 (巢狀類別寫法) SingletonCreator.instance; class SingletonCreator {
C# 設計模式:原型模式 (4) - 淺拷貝 vs 深拷貝完整對比與 ICloneable 實作
淺拷貝 this.MemberwiseClone(); // 預設淺拷貝 public void Display() { foreach(int i
C# 2.0 泛型實現單例模式重用 (2):SingletonProvider 使用範例與多執行緒測試驗證
泛型約束關鍵 where T : new() 強制型別參數 T 擁有公用無參數建構子,使 SingletonCreator 能以 new T() 實例化。 測