现在的位置: 首页 > 综合 > 正文

设计模式16:模板方法模式【行为型】

2018年10月03日 ⁄ 综合 ⁄ 共 843字 ⁄ 字号 评论关闭
#include <iostream>
#include <list>
using namespace std;

//
struct IResume
{
public:
	virtual ~IResume() { }

	virtual void SetPersonalInfo() = 0;
	virtual void SetEducationInfo() = 0;
	virtual void SetWorkInfo() = 0;

	void FillResume()
	{
		SetPersonalInfo();
		SetEducationInfo();
		SetWorkInfo();
	}
};

class CResumeA : public IResume
{
public:
	virtual ~CResumeA() { }

	virtual void SetPersonalInfo() { cout<<"A person info."<<endl; }
	virtual void SetEducationInfo() { cout<<"A education info."<<endl; }
	virtual void SetWorkInfo() { cout<<"A work info."<<endl; }
};

class CResumeB : public IResume
{
public:
	virtual ~CResumeB() { }

	virtual void SetPersonalInfo() { cout<<"B person info."<<endl; }
	virtual void SetEducationInfo() { cout<<"B education info."<<endl; }
	virtual void SetWorkInfo() { cout<<"B work info."<<endl; }
};

//
void main()
{
	IResume *pResume = new CResumeA();
	pResume->FillResume();
	delete pResume;

	pResume = new CResumeB();
	pResume->FillResume();
	delete pResume;
}

抱歉!评论已关闭.