设计模式之模板模式

某几件事有共同的方法步骤,这时可以把相同的方法抽象出来,写一个抽现象模板。

 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 }

 

posted @ 2020-04-07 20:32  njit-sam  阅读(125)  评论(0编辑  收藏  举报