TemplateMethod模板方法模式
2010-12-01 21:25
253 查看
关键在于把一个算法分解为几个非常固定的步骤,顺序是可以在子类中得到改变的
#include <cstdlib>
#include <iostream>
using namespace std;
class Template
{
public:
virtual ~Template(){cout<<"Tempalte基类析构"<<endl;}
void BiaoBai()
{
SayOneWord();
SayTwoWord();
SayThreeWord();
}
virtual void SayOneWord() = 0;
virtual void SayTwoWord() = 0;
virtual void SayThreeWord() = 0;
};
class Chinese:public Template
{
public:
virtual ~Chinese(){cout<<"Chinese基类析构"<<endl;}
virtual void SayOneWord(){cout<<"I ";}
virtual void SayTwoWord(){cout<<"LOVE ";}
virtual void SayThreeWord(){cout<<"YOU!"<<endl;}
};
class English:public Template
{
public:
virtual ~English(){cout<<"English基类析构"<<endl;}
virtual void SayOneWord(){cout<<"我";}
virtual void SayTwoWord(){cout<<"爱";}
virtual void SayThreeWord(){cout<<"你!"<<endl;}
};
void Do(Template* pBoy)
{
pBoy->BiaoBai();
}
int main(int argc, char *argv[])
{
Template* pOne = new Chinese;
Do(pOne);
delete pOne;
pOne = new English;
Do(pOne);
delete pOne;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
class Template
{
public:
virtual ~Template(){cout<<"Tempalte基类析构"<<endl;}
void BiaoBai()
{
SayOneWord();
SayTwoWord();
SayThreeWord();
}
virtual void SayOneWord() = 0;
virtual void SayTwoWord() = 0;
virtual void SayThreeWord() = 0;
};
class Chinese:public Template
{
public:
virtual ~Chinese(){cout<<"Chinese基类析构"<<endl;}
virtual void SayOneWord(){cout<<"I ";}
virtual void SayTwoWord(){cout<<"LOVE ";}
virtual void SayThreeWord(){cout<<"YOU!"<<endl;}
};
class English:public Template
{
public:
virtual ~English(){cout<<"English基类析构"<<endl;}
virtual void SayOneWord(){cout<<"我";}
virtual void SayTwoWord(){cout<<"爱";}
virtual void SayThreeWord(){cout<<"你!"<<endl;}
};
void Do(Template* pBoy)
{
pBoy->BiaoBai();
}
int main(int argc, char *argv[])
{
Template* pOne = new Chinese;
Do(pOne);
delete pOne;
pOne = new English;
Do(pOne);
delete pOne;
system("PAUSE");
return EXIT_SUCCESS;
}
相关文章推荐
- 行为型模式之模板方法模式(TemplateMethod)
- 设计模式——模板方法模式(TemplateMethod Pattern)
- 面向对象设计模式之TemplateMethod模板方法(行为型)
- 模板方法模式(TemplateMethod)
- 模板方法模式(TemplateMethod)
- 15.TemplateMethod-模板方法模式
- TemplateMethod(模板方法模式)
- 模板方法模式(TemplateMethod)
- 浅谈JAVA设计模式之——模板方法(TemplateMethod)
- 模板方法模式(TemplateMethod)
- 15.TemplateMethod-模板方法模式
- 模板方法模式(TemplateMethod)
- 模板方法模式(TemplateMethod)
- 我读设计模式之模板方法模式(TemplateMethod Pattern)
- 设计模式 模板方法模式 TemplateMethod
- templateMethod(模板方法模式)
- 设计模式学习之模板方法模式(TemplateMethod,行为型模式)(9)
- TemplateMethod模板方法(行为型模式)
- 设计模式之模板方法模式(TemplateMethod)
- 大话设计模式读书笔记8----模板方法模式(TemplateMethod)