天天看點

設計模式-建立型模式- 建造者模式

1)  建造者模式(Builder Pattern ) 又叫生成器模式,是一種對象構模組化式。它可以将複雜對象的建造過程抽象出來(抽象類别),使這個抽象過程的不同實作方法可以構造出不同表現(屬性)的對象。

2)  建 造者模式 是一步一步建立一個複雜的對象,它允許使用者隻通過指定複雜對象的類型和内容就可以建構它們,使用者不需要知道内部的具體建構細節。

建造者模式的四個角色

1) Product (産品角色): 一個具體的産品對象。

2) Builder (抽象建造者): 建立一個Product對象的各個部件指定的 接口/ 抽象類。

3) ConcreteBuilder (具體建造者): 實作接口,建構和裝配各個部件。

4) Director (指揮者): 建構一個使用Builder接口的對象。它主要是用于建立一個複雜的對象。它主要有兩個作用,一是:隔離了客戶與對象的生産過程,二是:負責控制産品對象的生産過程。

 建造者模式的注意事項和細節

1) 用戶端(使用程式) 不 必知道産品内部組成的細節,将産品本身與産品的建立過程解耦,使得相同的建立過程可以建立不同的産品對 象

2) 每一個具體建造者都相對獨立,而與其他的具體建造者無關,是以可以很友善地替換具體建造者或增加新的具體建造者,  使用者使用不同的具體建造者即可得到不同的産品對 象

3)  可以更加精細地控制産品的建立過程 。将複雜産品的建立步驟分解在不同的方法中,使得建立過程更加清晰,也更友善使用程式來控制建立過程

4)  增加新的具體建造者無須修改原有類庫的代碼,指揮者類針對抽象建造者類程式設計,系統擴充友善,符合  “開閉原則 ”。

5) 建造者模式所建立的産品一般具有較多的共同點,其組成部分相似, 如果産品之間的差異性很大,則不适合使用建造者模式,是以其使用範圍受到一定的限制。

6) 如果産品的内部變化複雜,可能會導緻需要定義很多具體建造者類來實作這種變化,導緻系統變得很龐大,是以在這種情況下,要考慮是否選擇建造者模式。

抽象工廠模式VS 建造者模 式

抽象工廠模式實作對産品家族的建立,一個産品家族是這樣的一系列産品:具有不同分類次元的産品組合,采用抽象工廠模式不需要關心建構過程,隻關心什麼産品由什麼工廠生産即可。而建造者模式則是要求按照指定的藍圖建造産品,它的主要目的是通過組裝零配件而産生一個新産品

繼續閱讀