模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
从定义中,应该可以看出一部分,为了更好理解,下面就直接上例子:
二、模板方法例子
在敲代码时,累了喝杯咖啡或者喝杯茶,会精神倍增。其实无论咖啡还是茶在冲的时间都是有讲究的。这个在本文不是重点。下面分别描述一下冲泡咖啡和冲泡茶的过程:
两种茶其分别的做法如下代码:
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 }