定義:
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。生成器模式利用乙個導演者物件和具體建造者物件乙個乙個地建造出所有的零件,從而建造出完整的物件。
四個要素:
builder:生成器介面,定義建立乙個product物件所需要的各個部件的操作。
concretebuilder:具體的生成器實現,實現各個部件的建立,並負責組裝product物件的各個部件,同時還提供乙個讓使用者獲取組裝完成後的產品物件的方法。
director:指導者,也被稱導向者,主要用來使用builder介面,以乙個統一的過程來構建所需要的product物件。
product:產品,表示被生成器構建的複雜物件,包含多個部件。
定義乙個產品類:
public class entity1
public class entity2
public class entity3
public class product
根據具體場景要求,定義n個生成器類:
public inte***ce ibuild
public class buildproduct implements ibuild
public product create()
......
}public class buildproduct1 implements ibuild
......
}
定義乙個指揮者類,統一排程project:
public class director
public product build()
public static void main()
}
優點:
1,使用生成器模式可以使客戶端不必知道產品內部組成的細節。
2,具體的建造者類之間是相互獨立的,對系統的擴充套件非常有利。
3,由於具體的建造者是獨立的,因此可以對建造過程逐步細化,而不對其他的模組產生任何影響。
應用場景:
1,需要生成乙個產品物件有複雜的內部結構。每乙個內部成分本身可以是物件,也可以使乙個物件的乙個組成部分。
2,需要生成的產品物件的屬性相互依賴。建造模式可以強制實行一種分步驟進行的建造過程。
3,在物件建立過程中會使用到系統中的其他一些物件,這些物件在產品物件的建立過程中不易得到
生成器模式
閱讀 研磨設計模式 筆記。之後若有所感,再補充。生成器模式目的 將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。示例 description 描述輸出到檔案頭的物件 author liuwei date 2014 4 17 version 1.0 public class...
生成器模式
生成器模式的定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。我們先來看乙個簡單的例子,比如說product類是乙個複雜的類,構建它需要許多步驟 class product 我們需要定義乙個抽象的生成器類builder,來定義構建product的步驟 abstract ...
生成器模式 Builder
把複雜的物件的構建與其表示分離開,以便根據程式的需要在相同的建立過程中建立不同的表示。每個生成器必須有乙個相同的方法名稱。client 建立乙個 director 物件,指定乙個 build 物件,配置 director。當 product 需要生成時,director 通知該builder bui...