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

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