设为首页 加入收藏

TOP

C++设计模式之建造者模式(一)(三)
2015-07-24 05:25:17 来源: 作者: 【 】 浏览:17
Tags:设计模式 建造 模式
>BuildMenu(); m_pPlayPattern->BuildPlayList(); m_pPlayPattern->BuildControlBar(); m_pPlayPattern->BuildCollectList(); Player * pPlayer = m_pPlayPattern->GetPlayer(); return pPlayer; } 测试文件实现代码如下:
#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;
}
  
编译并执行,程序结果如下: n丁?编程,客户端根据需要传入具体的建造者类型,指挥者将指导具体建造者一步一步构造一个完整的产品(逐步调用具体建造者的buildX()方法),相同的构造过程可以创建完全不同的产品。在暴风影音播放器实例中,如果需要更换具体的播放模式,只需要把具体播放模式传入到播放器指挥者中即可,可以随时切换播放模式;如果需要增加新的播放模式,可以增加一个新的播放模式类作为抽象播放模式子类,并把该播放模式传入到播放器指挥者中,原有代码无须修改,完全符合“开闭原则”。
未完、更新中......


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Codeforces Round #252 D 置换群.. 下一篇HDOJ 4974 A simple water problem

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: