ew FullPattern();
cout << "完整播放模式:" << endl;
pPlayer = pFullPattern->StartConstruct();
pPlayer->Display();
/***********************精简播放模式************************/
SimplePattern * pSimplePattern = new SimplePattern();
cout << "精简播放模式:" << endl;
pPlayer = pSimplePattern->StartConstruct();
pPlayer->Display();
/***********************记忆播放模式************************/
MemoryPattern * pMemoryPattern = new MemoryPattern();
cout << "记忆播放模式:" << endl;
pPlayer = pMemoryPattern->StartConstruct();
pPlayer->Display();
/***********************销毁操作****************************/
cout << endl;
delete pFullPattern;
pFullPattern = NULL;
delete pSimplePattern;
pSimplePattern = NULL;
delete pMemoryPattern;
pMemoryPattern = NULL;
return 0;
}
编译并执行,结果如下:

此时,StartConstruct()方法定义了其他buildPartX()方法调用的次序,为其他方法的执行提供了一个流程模板,这与我们在后面要学习的模板方法模式非常类似。对Director类的省略方式都不影响系统的灵活性和可扩展性,同时还简化了系统结构,但加重了抽象建造者类的职责,如果StartConstruct()方法较为复杂,待构建产品的组成部分较多,建议还是将StartConstruct()方法单独封装在Director中,这样做更符合“单一职责原则”