行为型设计模式之-模板模式

模板模式:就是字面意思。依赖抽象。也就是抽象类做一个模板,按照固定流程执行方法。方法固定不变的(方法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     }
View Code

 

 

总结:模板方法就是类应对固定流程,但是不固定里面执行的内容。通过抽象里面的具体细节,来达到,外部扩展实现!!。

posted @ 2021-07-20 15:27  小换哥  阅读(34)  评论(0编辑  收藏  举报