模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

从定义中,应该可以看出一部分,为了更好理解,下面就直接上例子:

二、模板方法例子

在敲代码时,累了喝杯咖啡或者喝杯茶,会精神倍增。其实无论咖啡还是茶在冲的时间都是有讲究的。这个在本文不是重点。下面分别描述一下冲泡咖啡和冲泡茶的过程:

模板方法模式(Head first 设计模式——7)

两种茶其分别的做法如下代码:

 1 public class Coffee 
 2 { 
 3     public void PrepareRecipe() 
 4     { 
 5         //烧水 
 6         BoilWater(); 
 7         //冲咖啡 
 8         BrewCoffeeGrinds(); 
 9         //倒入茶杯中 
10         PourInCup(); 
11         //加入糖和咖啡 
12         AddSugarAndMilk(); 
13     } 
14     public void BoilWater() 
15     { 
16         Console.WriteLine("烧水"); 
17     }
18 
19     public void BrewCoffeeGrinds() 
20     { 
21         Console.WriteLine("冲咖啡"); 
22     }
23 
24     public void PourInCup() 
25     { 
26         Console.WriteLine("倒入杯子中"); 
27     }
28 
29     public void AddSugarAndMilk() 
30     { 
31         Console.WriteLine("加糖和牛奶"); 
32     } 
33 }
34 
35 public class Tea 
36 { 
37     public void PrepareRecipe() 
38     { 
39         //烧水 
40         BoilWater(); 
41         //泡茶 
42         SteepTeaBag(); 
43         //倒入茶杯中 
44         PourInCup(); 
45         //加入柠檬 
46         AddLemon(); 
47     } 
48     public void BoilWater() 
49     { 
50         Console.WriteLine("烧水"); 
51     }
52 
53     public void SteepTeaBag() 
54     { 
55         Console.WriteLine("泡茶"); 
56     }
57 
58     public void PourInCup() 
59     { 
60         Console.WriteLine("倒入杯子中"); 
61     }
62 
63     public void AddLemon() 
64     { 
65         Console.WriteLine("加柠檬"); 
66     } 
67 }
View Code

相关文章:

  • 2021-08-27
  • 2021-12-15
  • 2022-12-23
  • 2021-09-11
  • 2022-01-06
  • 2021-12-21
  • 2021-09-07
  • 2021-07-29
猜你喜欢
  • 2022-12-23
  • 2021-10-27
  • 2021-12-26
  • 2022-12-23
  • 2021-09-21
  • 2021-10-04
  • 2021-12-24
相关资源
相似解决方案