設計模式之建造者模式 設計模式之建造者模式

設計模式之建造者模式

Intro 簡介

建造者模式: 建造者模式隱藏了複雜對象的創建過程,它把複雜對象的創建過程加以抽象,通過子類繼承或者重載的方式,動態的創建具有複合屬性的對象。

需要的組件:

  • Product 最終要構建的產品
  • AbstractBuilder 創建一個 Product 的抽象 builder
  • ConcreteBuilder1/ConcreteBuilder2 創建 Product 具體的 builder
  • Director 指揮 builder 如何創建一個複雜的 Product(根據需要可以沒有)

主要解決:

主要解決在軟件系統中,有時候面臨着"一個複雜對象"的創建工作,其通常由各個部分的子對象用一定的算法構成;由於需求的變化,這個複雜對象的各個部分經常面臨着劇烈的變化,但是將它們組合在一起的算法卻相對穩定。

使用場景

當我們要創建的對象比較複雜,各種參數配置很多的時候可以考慮使用建造者模式,將複雜的構建過程封裝在構建者中

Sample

var director = new Director();
Builder builder1 = new ConcreteBuilder1(), builder2 = new ConcreteBuilder2();

director.Construct(builder1);
director.Construct(builder2);

var product2 = builder1.GetResult();
var product2 = builder2.GetResult();

.net core 中的各種 builder (HostBuilder/ConfigurationBuilder/...) 我覺得也是屬於建造者模式的,只是 Builder 本身就是 Director,
通過 builder 來實現對象的各種參數配置構建最終的目標對象 (Host/Configuration/...)

Reference

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章