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

2021-09-29 22:32:40 字數 1637 閱讀 3285

建造者模式

主要用於將產品修飾的這部分內容抽象化,提供給外部乙個自由定製的修飾渠道,達到自由切換修飾規則但是不用修改舊**的效果。

帶有抽象介面的建造者模式主要涉及的物件有:

①引導者(decorate)、②產品、③抽象建造者介面(builder)、④定製化的builder。

打個比方,我開著一輛拖拉機去石料場運載建築用的石料,通過控制石料場的碎石機遙控器,設定石頭大小,石頭型別等後按啟動鍵,就可以把拖拉機開到出石口等待接收加工好的石料後把它運走就可以了。

那麼此時,我就相當於乙個引導者,由我控制規則;碎石機就相當於抽象builder,因為它提供了整體的框架和物理基礎;碎石機的遙控器就是已定製好的builder規則;石頭就是產品;至於後面生產出來的石頭怎麼使用就和我無關了。

下面是這種模式常見的類圖。

scheme1builder和scheme2builder是對應的定製化建設規則。

上**:

① 新建product類和抽象builder

② 新建decorate,引導builder構建

③ 編寫具體builder規則

④ 測試

這種建造者模式在jdk的stringbuffer和stringbuilder中有所體現。

stringbuffer和stringbuilder是抽象字串建造者的定製化建造者類,使用時可以按情況使用,至於兩者的區別這裡不展開描述。

注:idea windows下檢視類圖的快捷鍵是ctrl+alt+u,全選後回車即可。

另外,建造者模式也有一種無抽象介面的方式。其通過乙個定義好的builder規則,以鏈式程式設計的方式選擇性地給產品進行修飾。

**如下

鏈式處理的方式讓**更簡潔,適用於處理有窮集的屬性構建操作。

這種方式在jdk**的locale類中有所體現,locale是乙個輔助本地化的類,有興趣的朋友可以自己去檢視一下源**。

建造者模式也是建立型設計模式之一,其存在的好處有

缺點有

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

建造者模式也被稱為生成器模式,它是建立乙個複雜物件的建立型模式,其將構建複雜物件的過程和它的部件解耦,使得構建過程和部件的表示分離開來。我們接著用工廠模式中的果園舉例,我們的水果店為了吸引老顧客 以及新顧客辦理會員,推出了各式各樣的 活動,例如會員購買蘋果 香蕉 桔子可以減15元 假日 活動可以立減...

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

有時需要建立乙個複雜物件,並且這個複雜物件由其各部分子物件通過一定的步驟組合而成。比如我們要生產乙個車,而車是由其它一些配件如引擎,車燈,輪子等組成。而且組裝是有一定順序的。如下 生產引擎 public class engine 生產車燈 public light 輪子 public class w...

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

建造者模式的結構 產品角色 抽象建造者 具體建造者 指揮者。相比抽象工廠模式,省掉了抽象產品,多了指揮者。產品class product 抽象建造者 abstract class builder 具體建造者 public class concretebuilder extends builder p...