设计模式之模板模式
某几件事有共同的方法步骤,这时可以把相同的方法抽象出来,写一个抽现象模板。
1 #include <iostream> 2 using namespace std; 3 #include <string> 4 //模板方法模式 5 class drinkTemplate { 6 public: 7 //煮水 8 virtual void boilWater() = 0; 9 //冲泡 10 virtual void brew() = 0; 11 //倒入杯中 12 virtual void pourInCup() = 0; 13 //加辅料 14 virtual void addSomething() = 0; 15 16 public: 17 //模板方法 18 void make() { 19 boilWater(); 20 brew(); 21 pourInCup(); 22 addSomething(); 23 } 24 }; 25 26 class coffee:public drinkTemplate { 27 public: 28 virtual void boilWater() { 29 cout << "注水" << endl; 30 } 31 //冲泡 32 virtual void brew() { 33 cout << "冲咖啡" << endl; 34 } 35 //倒入杯中 36 virtual void pourInCup() { 37 cout << "倒咖啡" << endl; 38 } 39 //加辅料 40 virtual void addSomething() { 41 cout << "加糖" << endl; 42 } 43 }; 44 45 class tea:public drinkTemplate { 46 public: 47 virtual void boilWater() { 48 cout << "注水" << endl; 49 } 50 //冲泡 51 virtual void brew() { 52 cout << "冲铁观音" << endl; 53 } 54 //倒入杯中 55 virtual void pourInCup() { 56 cout << "倒茶" << endl; 57 } 58 //加辅料 59 virtual void addSomething() { 60 cout << "加柠檬" << endl; 61 } 62 }; 63 64 int main() 65 { 66 tea* t = new tea; 67 t->make(); 68 coffee* f = new coffee; 69 f->make(); 70 }