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

C# 設計模式:建造者模式完整指南(一)— 核心定義、命名考量與四大角色

     編輯:關於C語言

建造者模式核心定義

**將產品的內部表徵與產品的生成過程分離**,使相同的建造過程可產生不同內部表徵的產品物件。

物件性質的建造

  • 某些物件擁有**重要性質**,未賦值前無法作為完整產品使用(如 Email 缺收件人無法發送)
  • 某些性質**必須按順序賦值**,前序未就緒時後序無法賦值
  • 涉及**複雜商業邏輯**的性質建造過程

此時物件 = 待建造產品,性質 = 零件,建造過程 = 組裝零件。因組裝複雜,將過程「外部化」到建造者物件,回傳完全組裝完成的產品。

命名考量:為什麼叫「建造者」而非「生成器」

  • 用零件生產產品,「建造」更貼切
  • 「創建」/「生成」暗示單步驟完成,不符合分步驟組裝語義

四大角色

角色職責
Builder (建造者)抽象介面,規範產品各組成部分的建造步驟,獨立於商業邏輯
ConcreteBuilder (具體建造者)緊密相關應用邏輯;逐步完成產品實例創建;建造完成後提供產品實例
Director (指導者)調用具體建造者創建產品;不擁有產品具體知識;將客戶請求分解為零件建造請求委派給建造者
Product (產品)被建造的複雜物件

角色互動流程

  1. 客戶端建立 Director 與 ConcreteBuilder
  2. 客戶端調用 Director.Construct(builder)
  3. Director 按順序調用 builder.BuildPartX()
  4. ConcreteBuilder 內部組裝 Product
  5. 構建完成,客戶端調用 builder.GetResult() 取得產品

關鍵洞見

Director 是客戶端接觸點,Builder 是實際幹活者,但客戶端不知 Builder 存在——這正是「指導者將請求分解委派給建造者」的解耦精髓。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved