設計模式學習(十) 建造者模式

2021-09-11 20:27:53 字數 1279 閱讀 9852

這是個人學習程式設計模式的系列學習筆記第十篇。

採用qt creator進行編寫,但盡量採用c++基礎語法。

建造者模式(builder pattern):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

個人理解,建造者模式的思路同前面學習的模板方法模式(template method pattern)思路類似。主體框架固定,具體實現不同,最後的結果不同。不過模板方法側重於乙個過程的執行,建造者模式側重於大型物件的不同表示。

如果乙個大型物件具有多個組成部分,但每個組成部分的構建不同,可以設計乙個構建介面類,然後派生具體的構建類。再定義乙個構建指揮者類,根據使用者需求,呼叫對應的具體構建類,最後返回建立好的產品。

建造者模式同抽象工廠模式非常類似,都是通過乙個統一的類建立不同的產品。區別主要是抽象工廠側重於一次性建立不同種類的產品,建造者模式側重於通過逐步構建,建立複雜的物件,有點像流水生產線組裝,最後建立乙個複雜產品。

假設有乙個高科技的汽車流水線工廠,可以根據使用者的訂單安排生產。使用者指定車型,流水線馬上開工,最後出廠的就是使用者需要的車型。

這個流水線同別的流水線不同的是,別的流水線是生產同樣的產品,這個流水線生產不同的產品。

定義乙個汽車生產排程類作為指揮者,定義一條汽車生產流水線作為構建介面類,這個介面類派生出各種具體型號的汽車每個環節的具體生產流程,按照這個生產流程,最終裝配出來指定型號的汽車。

大話設計模式學習(十) 建造者模式

建造者模式 將乙個複雜物件的構造與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式主要用於建立一些複雜的物件,這些物件內部構建之間的建造順序通常是穩定的,但物件內部的建構通常面臨著複雜的物件,它的好處在於使得建造 和表示 分離,由於建造者隱藏了該產品是如何組裝的,所以若需要改變乙個產品...

設計模式(十)建造者模式 Builder

1.介紹 作用 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式最主要功能是基本方法的呼叫順序安排,也就是這些基本方法已經實現了。2.應用場景 一是產品類非常的複雜,或者產品類中的呼叫順序不同產生了不同的效能,這個時候使用建造者模式是非常合適。舉乙個形象的例子 去...

學習設計模式 建造者模式

說明 如果你需要將乙個複雜的物件或功能的構建流程和表示分離,使得同樣的構建流程,也可以建立出不同的表示,例如麥當勞做炸東西,炸東西的流程是一樣的,但放入的材料不同,炸出來的東西不一樣 例如雞排 雞腿 雞翅等 需求 使用者要個炸雞腿 解決方式 a.定義乙個產品類 炸東西 b.定義乙個構建產品部分或過程...