1. 程式人生 > >設計模式--淺談建造者模式

設計模式--淺談建造者模式

建造者模式的優缺點和使用環境 
1.優點:(1)客戶端不必知道產品內部組成的細節,將產品本身與產品的建立過程解耦,使得相同的建立過程可建立不同的產品物件

(2)每一個建造者都相對獨立,與其他的建造者無關,因此可以很方便的替換具體建造者或增加新的具體建造者,使用者使用不同的建造者即可得到不同的產品物件。符合開閉原則。

(3)使用者可以更加精細的控制產品的建立過程,將複雜的產品建立步驟費解在不同的方法中,使得建立過程更加清晰,也更方便實用程式來控制建立過程

2.缺點:(1)建造者模式建立的產品一般具有較多的共同點,其組成部分相似,如果產品之間的差異性很大,如組成部分很多不同,則不適合用建造者模式,因此,適用範圍受到一定的限制

(2)如果產品內部變化複雜,可能會需要定義很多具體建造者類來實現這種變化,導致系統變得很龐大,增加了系統的理解難度和執行成本

3.使用環境(1)需要生成的產品物件的屬性相互依賴,需要指定其生成順序

(2)需要生成的產品物件有複雜的內部結構,這些產品通常包含多個成員變數

(3)物件的建立過程獨立於建立該物件的類。在建造者模式中通過引入指揮者類,將建立過程封裝在指揮者類中,而不在建造這類和客戶類中

(4)隔離複雜物件的建立和使用,並使得相同的建立過程建立不同的產品