行为型设计模式之-模板模式
模板模式:就是字面意思。依赖抽象。也就是抽象类做一个模板,按照固定流程执行方法。方法固定不变的(方法12345执行)。每个方法判断是否是固定不变的。固定不变的那就是普通方法,如果部分有变化,那就是要虚方法。如果确定不了就用抽象方法。子类继承后,就按照该模板实现然后调用。来看代码,看了就清晰了!
1 /// <summary> 2 /// 行为型设计模式之模板模式 3 /// </summary> 4 public abstract class BehaviorDesign 5 { 6 public void DoSomesing() 7 { 8 //固定执行流程 9 DoStudy(); 10 DoSomeSingTime2(); 11 DoSomeSingTime(); 12 DoSomeSingTime3(); 13 HavingDinner(); 14 DoSomeSingTime4(); 15 } 16 17 public void DoStudy() 18 { 19 Console.WriteLine("学习"); 20 } 21 22 public void HavingDinner() 23 { 24 Console.WriteLine("吃饭"); 25 } 26 public virtual void DoSomeSingTime() 27 { 28 Console.WriteLine("上厕所"); 29 } 30 31 public virtual void DoSomeSingTime2() 32 { 33 Console.WriteLine("听歌"); 34 } 35 36 public abstract void DoSomeSingTime3(); 37 public abstract void DoSomeSingTime4(); 38 39 40 41 42 } 43 44 public class Template : BehaviorDesign 45 { 46 public override void DoSomeSingTime3() 47 { 48 Console.WriteLine("泡妹子"); 49 } 50 51 public override void DoSomeSingTime4() 52 { 53 Console.WriteLine("打游戏"); 54 } 55 56 public override void DoSomeSingTime() 57 { 58 base.DoSomeSingTime(); 59 Console.WriteLine("想干嘛就干嘛"); 60 } 61 } 62 //调用端 63 public class Create 64 { 65 static void Main() 66 { 67 BehaviorDesign behaviorDesign = new Template(); 68 behaviorDesign.DoSomesing(); 69 } 70 }
总结:模板方法就是类应对固定流程,但是不固定里面执行的内容。通过抽象里面的具体细节,来达到,外部扩展实现!!。
本文来自博客园,作者:小换哥,转载请注明原文链接:https://www.cnblogs.com/haunge/p/15035180.html