模板方法模式

最后更新于:2022-04-01 20:29:34

## 模式定义:       模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。       模板就是一个方法。更具体的说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类实现。这可以确保算法的结果保持不变,同时由子类提供部分实现。 ## 模式结构: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-30_57c54590dbd73.jpg) ## 举例:       泡咖啡和泡茶步骤与基本相同,定义咖啡和茶的类如下: ~~~ class Coffee { public: void prepareRecipe() { boilWater(); brewCoffeeGrinds(); pourInCup(); addSugarAndMilk(); } void boilWater() { cout << "Boiling water" << endl; } void brewCoffeeGrinds() { cout << "Dripping Coffee through filter" << endl; } void pourCup() { cout << "Pouring into cup" < using namespace std; //定义咖啡因基类 class CaffeineBeverage { public: void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); } void boilWater() { cout << "Boiling water" << endl; } void pourInCup() { cout << "Pouring into cup" < ';