将一個複雜對象的建構過程分離,使得同樣的建構過程可以建立不同的結果。
相同的方法,不同的執行順序,産生不同的結果
多個零件或者部件,可以組裝到一個對象中,産生不同的結果
初始化過程比較複雜,參數較多
舉一個例子,Android對話框,就是Builder模式,像這樣:
本是一個相對複雜的對話框,通過鍊式程式設計建構出來。
我們假設組裝一台寶馬轎車,它有品牌、型号、顔色。
車
寶馬車
下面是Builder類,用來描述建構一台車需要哪些方法
接下來來實作建構一台寶馬車的Builder
這裡的build方法都傳回自身,用來鍊式調用。
下面來建構一台紅色的3系寶馬轎車
如果你還想給車子添加個HUD、換個真皮座椅,隻需要在Builder裡添加對用的方法,建構的時候設定屬性就可以了。
Builder設計模式具有良好的封裝性,建構者獨立,友善擴充。
不足就是需要建立多個Builder。