建立型模式(4) 建造者模式

2021-09-26 21:29:38 字數 769 閱讀 2663

肯德基做漢堡的過程都是有嚴格的規範的,不管是麥香雞腿堡還是紐奧良烤雞腿堡,他們的製作步驟都是有嚴格規定,做漢堡的人既不能多做一步,也不能少做一步。對於不同的漢堡來說,雖然每一步加的料所有不同,但做漢堡的步驟都是一樣的。因為有了對做漢堡過程的嚴格控制,因而全國所有的肯德基店做出來的漢堡味道都是一樣的。

這些漢堡就是乙個個物件,剛被建立出來的時候它就是兩片麵包片,沒有任何內容;然後我們把它扔到乙個流水線上,這個流水線會按照指定的步驟往漢堡物件中逐步新增材料;當漢堡走完一遍流程後,乙個漢堡就做好了。

在這個過程中,漢堡就是乙個需要被構造的物件,做漢堡的所有步驟就是乙個個函式,他們被封裝在乙個建造者類中,流水線就是乙個控制類,確保每乙個步驟依次執行。

1.把做一件事情所有的步驟作為抽象函式寫到介面builder中;

2.在實現類中重寫所有抽象函式;

3.將建造者物件傳遞給指揮者,讓指揮者依次執行所有的步驟;

4.通過product的getproduct(),獲取最後生成的物件。

初始化乙個物件時,原本物件的引數需要客戶程式自己設定;若設定物件引數的過程非常複雜,那麼客戶程式就會變的複雜;此時使用建造者模式,將乙個物件複雜的構造過程封裝在乙個個建造者類中,不同的建造者類對應著不同的物件構建的方法;也就是該模式在客戶端隱藏了該產品是如何組裝的,若需要改變乙個產品的內部表示,是需要換乙個具體的建造者就可以了。避免了客戶程式在構建複雜物件時候的大量**,使得客戶程式變的簡潔。

4 建立型模式 建造者模式

模式動機 乙個物件由若干部件組成,而組合這些部件的過程比較複雜,因此可以把這個組合工作交給建造者來完成,建造這返回給客戶的是乙個組裝好的物件。模式定義 builder pattern 將乙個複雜物件的構建與表示分離開來,使得同樣的構建過程可以建立不同的表示形式。模式結構圖 其中包含抽象建造者buil...

建立型模式 建造者模式

建造者模式 builder pattern 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理建造者,使用者和指導聯絡,指導者聯絡建造者最後得到產品牌。即建造模式可以強制實現一種分步驟進行的建造過程。建造者模式將複雜...

建立型模式 建造者模式

這段時間剛好要觀摩持久層框架mybatis,恰好看到mybatis 複雜的工廠物件 sqlsessionfactory 的生成類 sqlsessionfactorybuilder 不禁想起gof 23種設計模式中的建造者模式。對照現實中,你去買車時只需知道你要買車的型別,便可到店中購得心滿意足的產品...