BuildClient::BuildClient()
{
}
void BuildClient::setBuilder(Builder *builder)
{
this->builder = builder;
}
void BuildClient::build()
{
builder->BuildA();
builder->BuildB();
builder->BuildC();
}
#include
#include "buildclient.h"
BuildClient::BuildClient()
{
}
void BuildClient::setBuilder(Builder *builder)
{
this->builder = builder;
}
void BuildClient::build()
{
builder->BuildA();
builder->BuildB();
builder->BuildC();
}
main.cpp
[html]
#include
#include "buildclient.h"
#include "xmlbuilder.h"
#include "textbuilder.h"
int main(int argc, char **argv)
{
BuildClient client;
client.setBuilder(new XMLBuilder);
client.build();
return 0;
}
#include
#include "buildclient.h"
#include "xmlbuilder.h"
#include "textbuilder.h"
int main(int argc, char **argv)
{
BuildClient client;
client.setBuilder(new XMLBuilder);
client.build();
return 0;
}
【运行结果】
[html]
construct Builder
construct XMLBuilder
XMLBuilder BuildA
XMLBuilder BuildB
XMLBuilder BuildC
construct Builder
construct XMLBuilder
XMLBuilder BuildA
XMLBuilder BuildB
XMLBuilder BuildC
【对比】建造模式和策略模式
设计模式(3)-策略模式(Strategy)一文中,示例代码UML图,如图2所示:

图2
对比策略模式的UML图,不难发现策略模式与建造模式极为相似。他们之间有何区别呢?
区别:策略模式提供的是一个方法,而建造模式提供的是一组方法。
对于建造模式和策略模式的区别,有不同看法,欢迎提出宝贵意见,共同学习!