1. 將乙個複雜物件的構建與他的表示分離(初始多個成員值並返回這個物件),使得同樣的構建過程可以建立不同的表示時,使用建造者模式。
2. 使用建造者模式,使用者只需要指定建造的型別就可以得到他們,而具體建造的過程和細節不需要知道,他們被封裝在具體的建造類中,擴充套件具體建造類來豐富建造的特例。
3. 指揮者(director)類,用來控制建造過程,也用它來隔離使用者與建造過程的關聯,指揮者類是使用者設定並用來建立的工具。
4. 建造者模式和策略模式用到的操作有些相似,指揮者封裝的建造方法(在策略模式裡面是策略方法)並提供了設定這個指揮者要建造的具體建造類。
5. 上圖中,builder是為類建立product物件的各個步驟指定的抽象介面,用於為多個具體建立抽象高層。他所定義的是抽象了具體(子類)建立某個物件 比如 product 的 「外觀方法」抽象。
6. concretebuilder 是具體的建造者,實現builder父類介面,構造和裝配特定的各個部件的引數值。product值的等待裝配的物件定義類,就是客戶要的物件。
7. director構建乙個使用builder 的介面,用來提供協調當前要建立的具體物件的操作,通過設定「具體建造類」(builder的子類),從而建立不同的需求結果。
8. 當建立乙個複雜的物件,這些物件內部構造結構是不變的也就是出自乙個類,但物件內部的成員內容及構造的順序多變,可以使用建造者模式。
9. 建造者模式的好處就是使得建造**(builder 子類)與表示**(director)分離,由於建造者隱藏了該產品是如何組裝的,所以若需要改變乙個產品的內部表示,只需再定乙個具體的建造者就可以了。
10. 建造者模式是在當要建立複雜物件,該物件的組成部分以及他們的裝配方式多變時適用的模式
using system;posted onusing system.collections.generic;
using system.text;
namespace 建造者模式
}class
director
}/// ///
構建類中包含構建步驟及返回構建好的物件
///
abstract class
builder
class
concretebuilder1 : builder
public override void buildpartb()
public override product getresult()
}class
concretebuilder2 : builder
public override void buildpartb()
public override product getresult()
}class
product
public void show()}}
}
2009-12-02 13:51
...)
編輯收藏
建造者模式(Bulider)
1.將乙個複雜物件的構建與他的表示分離 初始多個成員值並返回這個物件 使得同樣的構建過程可以建立不同的表示時,使用建造者模式。2.使用建造者模式,使用者只需要指定建造的型別就可以得到他們,而具體建造的過程和細節不需要知道,他們被封裝在具體的建造類中,擴充套件具體建造類來豐富建造的特例。3.指揮者 d...
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...