小A:“那應該如何使用生成器模式?”
大B:“首先假設一個複雜對象是由多個部件組成的,Builder模式是把複雜對象的創建和部件的創建分別開來,分別用Builder類和Director類來表示。”
首先,需要一個接口,它定義如何創建複雜對象的各個部件:
//創建部件A比如創建汽車車輪
//創建部件B比如創建汽車方向盤
//創建部件C比如創建汽車發動機
//返回最後組裝成品結果(返回最後裝配好的汽車)
//成品的組裝過程不在這裏進行,而是轉移到下麵的Director類中進行。
//從而實現了解耦過程和部件
用Director構建最後的複雜對象,而在上麵Builder接口中封裝的是如何創建一個個部件(複雜對象是由這些部件組成的),也就是說Director的內容是如何將部件最後組裝成成品:
//將部件partApartBpartC最後組成複雜對象
//這裏是將車輪方向盤和發動機組裝成汽車的過程
Builder的具體實現ConcreteBuilder,通過具體完成接口Builder來構建或裝配產品的部件,定義並明確它所要創建的是什麼具體東西,提供一個可以重新獲取產品的接口。
//這裏是具體如何構建partA的代碼
};
//這裏是具體如何構建partB的代碼
};
//這裏是具體如何構建partB的代碼
//返回最後組裝成品結果
};
複雜對象:產品Product:
複雜對象的部件:
我們看看如何調用Builder模式:
(本章完)