首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式實戰:Factory Method 工廠方法模式完整解析(二)

     編輯:關於C語言

程式碼執行結果

工廠方法執行結果

代碼架構說明

基於抽象工廠範例演進,融合三大模式:

  • PatrixSceneFactory:工廠方法中的抽象工廠角色 = 抽象工廠中的具體工廠角色
  • HalfPaperFactory / MatrixFactory:工廠方法的具體工廠角色
  • PatrixScene:雙重身份——工廠方法的抽象產品角色,同時是抽象工廠的抽象工廠角色(負責建立 Model/Texture 系列)
  • InitScene():體現 Template Method,封裝共同初始化步驟
  • HalfPaper / Matrix:工廠方法的具體產品角色 = 抽象工廠的具體工廠角色

模式層級比較

設計原則體現

依賴抽象介面而非具體類別。若無這兩層工廠,Client 需直接依賴具體場景、紋理、模型類別,且需條件判斷建立,新增場景將引發大幅修改與風險。

採用時機

  • 代碼層面:需建立易變物件,或由子類決定具體建立類別
  • 應用層面:具體產品建立不穩定,或 Client 無需知悉具體產品(框架/工具包常見,如列印子系統決定一般/寬幅列印物件)

實現要點

  • 透過繼承建立具體產品,通常一產品對應一工廠
  • 具體工廠類別決定建立細節,Client 僅知「取得一個場景」

注意事項

每個具體產品對應一個具體工廠,濫用會導致類別數量激增。權衡彈性與複雜度。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
維度Abstract FactoryFactory Method
抽象層級針對「一組產品」建立,抽象度高針對「單一產品」建立
核心關注規範產品族一致性(如顯卡系列:低/中/高端)解決具體產品建立易變性,提取共同步驟
變化點產品族切換具體產品類別替換(如 HalfPaper → HalfPaperSpecial)