java設計模式之建造者模式
定義:
建造者模式:將一個複雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
實用範圍
1、當創建複雜對象的算法應該獨立於該對象的組成部分以及它們的裝配方式時。
2、當構造過程必須允許被構造的對象有不同表示時。
角色
在這樣的設計模式中,有以下幾個角色:
1、Builder:爲創建一個產品對象的各個部件指定抽象接口。
2、ConcreteBuilder:實現Builder的接口以構造和裝配該產品的各個部件,定義並明確它所創建的表示,並提供一個檢索產品的接口。
3、Director:構造一個使用Builder接口的對象,指導構建過程。
4、Product:表示被構造的複雜對象。ConcreteBuilder創建該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。
角色Builder:
角色ConcreteBuilder:
角色ConcreteBuilder:
角色Director:
角色Product:
測試:
建造者模式在使用過程中可以演化出多種形式:
如果具體的被建造對象只有一個的話,可以省略抽象的Builder和Director,讓ConcreteBuilder自己扮演指導者和建造者雙重角色,甚至ConcreteBuilder也可以放到Product裏面實現。
在《Effective Java》書中第二條,就提到“遇到多個構造器參數時要考慮用構建器”,其實這裏的構建器就屬於建造者模式,只是裏面把四個角色都放到具體產品裏面了。
上面例子如果只製造男人,演化後如下:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.