在C++中 我们会根据对象的需求常用到的一种模式就是模板模式
//模板模式 :制定一个流程 将一些特定的步骤延迟到子类
例如 在此段代码中 我们定义了一个基类它的功能是Eat 输出"吃"的流程
我们又分成了三种人 这三种人的吃的方法是不一样的 但也只有用到的吃饭工具不同 其他的一样
所以 我们的思想是将不同的一部分提取出来 定义一个一个纯虚函数EatType()来处理
用到的是我们C++的多态的特点
完整代码如下
#include<iostream>
using namespace std;
class Person
{
public:
virtual void EatType() = 0;
public:
void Eat()
{
cout << "来一碗饭" << endl;
EatType();
cout << "吃" << endl;
}
};
class Chinese :public Person
{
public:
void EatType()
{
cout << "用筷子" << endl;
}
};
class Usa :public Person
{
public:
void EatType()
{
cout << "用刀叉" << endl;
}
};
class India :public Person
{
public:
void EatType()
{
cout << "用手" << endl;
}
};
int main()
{
Chinese c;
c.Eat();
Usa u;
u.Eat();
India i;
i.Eat();
return 0;
}
//模板模式 :制定一个流程 将一些特定的步骤延迟到子类