#include编译并执行,程序结果如下:#include "ContructManage.h" #include "PlayPattern.h" #include "Player.h" using namespace std; int main() { /***********************创建建造管理器**********************/ ContructManage * pContructManage = new ContructManage(); Player * pPlayer = NULL; /***********************完整播放模式************************/ PlayPattern * pFullPattern = new FullPattern(); cout << "完整播放模式:" << endl; pContructManage->SetPlayPattern(pFullPattern); pPlayer = pContructManage->Construct(); pPlayer->Display(); /***********************精简播放模式************************/ PlayPattern * pSimplePattern = new SimplePattern(); cout << "精简播放模式:" << endl; pContructManage->SetPlayPattern(pSimplePattern); pPlayer = pContructManage->Construct(); pPlayer->Display(); /***********************记忆播放模式************************/ PlayPattern * pMemoryPattern = new MemoryPattern(); cout << "记忆播放模式:" << endl; pContructManage-> SetPlayPattern(pMemoryPattern); pPlayer = pContructManage->Construct(); pPlayer->Display(); /***********************销毁操作****************************/ cout << endl; delete pFullPattern; pFullPattern = NULL; delete pSimplePattern; pSimplePattern = NULL; delete pMemoryPattern; pMemoryPattern = NULL; delete pContructManage; pContructManage = NULL; return 0; }
编程,客户端根据需要传入具体的建造者类型,指挥者将指导具体建造者一步一步构造一个完整的产品(逐步调用具体建造者的buildX()方法),相同的构造过程可以创建完全不同的产品。在暴风影音播放器实例中,如果需要更换具体的播放模式,只需要把具体播放模式传入到播放器指挥者中即可,可以随时切换播放模式;如果需要增加新的播放模式,可以增加一个新的播放模式类作为抽象播放模式子类,并把该播放模式传入到播放器指挥者中,原有代码无须修改,完全符合“开闭原则”。
未完、更新中......