天天看點

設計模式之十一(建造者模式)

前言

建造者模式,将一個複雜對象的建構與它的表示分離,使得同樣的建構過程可以建立不同的表示。

結構圖

設計模式之十一(建造者模式)

Builder是為建立一個Product對象的各個部件指定的抽象接口。

ConcreteBuilder是具體的建造者,實作Builder接口,構造和裝配各個部件。可以有多個不同的具體的建造者。

Product具體産品角色

Director就是建構一個使用Builder接口的對象。

代碼實作

 首先來看一下産品類

第一個Add方法主要是為産品添加部件

第二個Show就是展示産品所擁有的部件

Builder類---抽象建造類,确定産品由兩個部件PartA和PartB組成,并聲明一個得到産品建造後結果的方法GetResult。

ConcreteBuilder1---具體建造者類

ConcreteBuilder2----具體建造者類

Director---指揮者類

用戶端代碼,用戶端不需知道具體的建造過程。

最終運作效果

設計模式之十一(建造者模式)

總結

 主要是用于建立一些複雜的對象,這些對象内部建構間的建造順序通常是穩定的, 但對象内部的建構通常是穩定的, 但對象内部的建構通常面臨着複雜的變化。

建造者模式的好處就是使得建造代碼與表示代碼分離,由于建造者隐藏了該産品是如何組裝的, 是以若需要改變一個産品的内部表示,隻需要再定義一個具體的建造着就可以了。

繼續閱讀