Posted on 2008-11-08 10:49
Herbert 閱讀(1563)
評論(0) 編輯 收藏 引用 所屬分類:
設計模式
Builder模式與Abstract factory 模式比較相似,不同的地方在于Builder模式在創建過程中是按步驟來創建對象的每個部分,然后返回該被創建的對象;而抽象工廠則側重于不同的工廠創建不同的產品。
如下圖所示:

理解的要點有兩個,一個是Client對Director的使用;另外一個是Director的CreateProduct()方法的實現。
CreateProduct()方法的實現:
Product Director::CreateProduct( AbstractBuilder builder)
{
builder.BuildPart1();
builder.BuildPart2();
builder.BuildPart3();
return builder.GetProduct();
}
Client 的調用:
Builder1 builder;
Director dir;
Product pro = dir.CreateProduct( builder);