C++设计模式之建造者模式(二)(二)

2015-07-20 17:52:18 · 作者: · 浏览: 10
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中,这样做更符合“单一职责原则”