概念
模版方法模式会把算法中的特定步骤中某些必要处理委让给抽象方法,子类继承抽象类,通过对抽象方法的不同实现改变算法的行为。
应用场景
模版模式一般应用在具有以下条件的应用中:
- 具有统一的操作步骤
- 具有不同的操作细节
- 存在具有多个相同操作步骤的场景,但具体的操作细节不同
总结:在抽象类中统一操作步骤,并规定好借口;子类实现借口,这样就可以把具体的子类和操作步骤解耦。
案例
class MakeCar
{
public:
virtual void makeEngine() = 0;
virtual void makeFacade() = 0;
virtual void makeDecorator() = 0;
void make()
{
makeEngine();
makeFacade();
makeDecorator();
}
};
class MakeBus : public MakeCar
{
virtual void makeEngine()
{
cout << "make bus engine." << endl;
}
virtual void makeFacade()
{
cout << "make bus facade." << endl;
}
virtual void makeDecorator()
{
cout << "make bus decorator." << endl;
}
};
int main(int argc, char *argv[])
{
MakeBus* bus = new MakeBus();
bus->make();
delete bus;
system("pause");
}