舉個我們熟悉的例子,比如我(client客戶)到一家電腦店配置新電腦(builder期望產品、抽象類),電腦店的老闆(director指揮者)先和我確定了配置,然後指定乙個裝機人員(concretebuilder具體建造者、實際執行者)負責,裝機人員乙個部件乙個部件的構建出我想要的電腦產品(product)步驟1:先確定想要的電腦配置(builder期望產品、抽象類),:
public abstract class builder
步驟2:電腦店老闆(director)指定乙個裝機人員負責:
public class director
}
步驟3:裝機人員(concretebuilder)裝機:
public class concretebuilder extends builder
@override
public void buildcpu()
@override
public void buildhd()
@override
public computer getcomputer()
}
步驟4:構建出來的產品(product):
public class computer
//展示電腦組裝流程
public void show()
system.out.println("電腦組裝完成,請驗收");
}}
步驟5:我(client)到一家電腦店買電腦:
public class builderpattern
}
輸出:
元件主機板裝好了
元件cpu裝好了
元件硬碟裝好了
電腦組裝完成,請驗收
我們可以省略中間流程,我(client客戶)到一家電腦店(concretebuilder具體建造者、實際執行者)配置新電腦(product),隱藏組裝電腦的細節。步驟1:首先我們的產品電腦(product)不變:
public class computer
//展示電腦組裝流程
public void show()
system.out.println("電腦組裝完成,請驗收");
}}
步驟2:其次電腦店(concretebuilder具體建造者、實際執行者)整合了期望產品(builder抽象類或介面)、電腦店的老闆(director指揮者)和裝機人員(concretebuilder具體建造者、實際執行者),直接輸出產品
public class concretebuilder
public concretebuilder buildcpu(string cpu)
public concretebuilder buildhd(string hd)
//完成組裝電腦,真正完成構建
public computer getcomputer()
}
步驟3:最後我們驗收產品:
public class builderpattern
}
輸出不變:
元件主機板裝好了
元件cpu裝好了
元件硬碟裝好了
電腦組裝完成,請驗收
android原始碼支援:
android中的alterdialog
類就是用建造者模式簡式寫法建立的
##5、參考:
建造者模式(builder pattern)- 最易懂的設計模式解析
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...