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

C# 設計模式:建造者模式完整指南(五)— 簡化版演化與 StringBuilder 經典案例

     編輯:關於C語言

建造者模式演化形態

1. 省略抽象建造者

系統僅需一個具體建造者時:


class Director
{
    private ConcreteBuilder builder;
    public void Construct()
    {
        builder.BuildPartA();
        builder.BuildPartB();
    }
}

2. 省略指導者(建造者自兼指導者)

具體建造者只有一個且抽象建造者已省略:


public class Builder
{
    private Product product = new Product();

    public void BuildPartA() { /* ... */ }
    public void BuildPartB() { /* ... */ }

    public Product GetResult() => product;

    // 自兼指導者角色
    public void Construct()
    {
        BuildPartA();
        BuildPartB();
    }
}

// 客戶端調用簡化
public class Client
{
    private static Builder builder;
    public static void Main()
    {
        builder = new Builder();
        builder.Construct();
        Product product = builder.GetResult();
    }
}

經典案例:C# StringBuilder

  • StringBuilder 就是建造者模式的標準實作
  • Append() 系列 = BuildPart()
  • ToString() = GetResult()
  • 內部管理字元緩衝區,最終一次性產出不可變 string
  • 避免字串拼接產生大量中間物件,效能大幅提升

使用建造者模式的判斷標準

條件說明
產品內部結構複雜多組成部分、嵌套結構
屬性相互依賴建造順序影響結果,需強制順序
創建過程依賴外部物件不易直接獲取的輔助物件

模式效果

  1. 產品內部表徵可獨立變化,客戶端不需知曉組裝細節
  2. 各 Builder 相互獨立,互不影響
  3. 最終產品構建過程更易控制(順序、驗證、步驟攔截)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved