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

C++ 設計模式:建造者模式 (一) — 核心結構與指揮者角色

     編輯:C++ 入門

模式定義

建造者模式將複雜對象的構建與其表示分離,使相同構建過程可創建不同表示。屬於創建型模式。

四大角色

  1. Product (產品):複雜對象,包含多個部件 (如播放器的窗口、菜單、列表、進度條、收藏夾)。
  2. Builder (抽象建造者):定義構建部件的抽象介面 (BuildPartX()) 及獲取產品方法 (GetResult())。
  3. ConcreteBuilder (具體建造者):實作具體構建邏輯,定義產品具體組成。
  4. Director (指揮者):安排構建順序,隔離客戶端與具體建造細節。

案例:暴風影音播放器

三種模式:完整 (全部件)、精簡 (僅窗口+進度條)、記憶 (窗口+進度條+收藏夾)。

程式碼架構

// Product
class Player {
    string menu, window, playList, controlBar, collectList;
public:
    void SetMenu(string s) { menu=s; } // ... 其他 Setter
    void Display() { cout<BuildWindow();
        m_pPattern->BuildMenu();
        m_pPattern->BuildPlayList();
        m_pPattern->BuildControlBar();
        m_pPattern->BuildCollectList();
        return m_pPattern->GetPlayer();
    }
};

客戶端

ConstructManage dm;
dm.SetPlayPattern(new FullPattern());
dm.Construct()->Display();
dm.SetPlayPattern(new SimplePattern());
dm.Construct()->Display();

優點

  • 封裝構建細節,客戶端無需知悉內部組裝。
  • 具體建造者獨立,易於新增/替換 (開閉原則)。
  • 指揮者控制順序,構建過程清晰可控。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved