它允許使用者只通過指定複雜物件的型別和內容就可以構建它們,使用者不需要知道內部的具體構建細節。目的是通過組裝零配件而產生乙個新產品。
客戶端不必知道產品內部組成的細節,將產品本身與產品的建立過程解耦,使得相同的建立過程可以建立不同的產品物件。
使用者使用不同的具體建造者即可得到不同的產品物件 。
增加新的具體建造者無須修改原有類庫的**,指揮者類針對抽象建造者類程式設計,系統擴充套件方便,符合 「開閉原則」。
乙個具體的產品物件,包含產品的各個組成部分 (建立零件並進行 setter 初始化)。
建立乙個 product 物件的各個部件指定的抽象介面。( 指定各個零件的抽象加工方法,並且返回加工後的零件 )
實現抽象介面,構建和裝配各個部件。==(實現零件的加工方法) ==
構建乙個使用 builder 介面的物件。它主要是用於建立乙個複雜的物件。( 呼叫 builder 的零件加工方法來進行產品組裝,獲取返回組裝後的物件)
它主要有兩個作用,一是:隔離了客戶與物件的生產過程,二是:負責控制產品物件的生產過程。
獲取 concretebuilder 物件例項
獲取 director 例項(傳入 concretebuilder 物件例項)
使用 director 的 生產方法獲取組裝後的產品物件
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...