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

理解的要點(diǎn)有兩個(gè),一個(gè)是Client對(duì)Director的使用;另外一個(gè)是Director的CreateProduct()方法的實(shí)現(xiàn)。
CreateProduct()方法的實(shí)現(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);