大话设计模式读书笔记8----模板方法模式(TemplateMethod)

模板方法模式(TemplateMethod):定义一个操作中算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

1、模板方法是通过把不变行为搬移到父类,去除子类中的重复代码来体现优势。

2、模板方法模式就是提供了一个很好的代码复用平台。

模板方法模式代码
 1  using  System;
 2  using  System.Collections.Generic;
 3  using  System.Text;
 4 
 5  namespace  TemplateMethod
 6  {
 7       class  Program
 8      {
 9           static   void  Main( string [] args)
10          {
11              AbstractClass c;
12              c  =   new  ConcreteClassA();
13              c.MethodOne();
14              c.MethodTwo();
15              Console.WriteLine();
16              c  =   new  ConcreteClassB();
17              c.MethodOne();
18              c.MethodTwo();
19              Console.ReadLine();
20          }
21      }
22       public   abstract   class  AbstractClass
23      {
24           public   abstract   void  MethodOne();
25           public   abstract   void  MethodTwo();
26           // TemplateMethod
27           public   void  TemplateMethod()
28          {
29              MethodOne();
30              MethodTwo();
31              Console.WriteLine( "   " );
32          }
33      }
34       public   class  ConcreteClassA : AbstractClass
35      {
36           public   override   void  MethodOne()
37          {
38              Console.WriteLine( " 具体类A方法1实现 " );
39          }
40           public   override   void  MethodTwo()
41          {
42              Console.WriteLine( " 具体类A方法2实现 " );
43          }
44      }
45       public   class  ConcreteClassB : AbstractClass
46      {
47           public   override   void  MethodOne()
48          {
49              Console.WriteLine( " 具体类B方法1实现 " );
50          }
51           public   override   void  MethodTwo()
52          {
53              Console.WriteLine( " 具体类B方法2实现 " );
54          }
55      }
56  }
57 


 

 

你可能感兴趣的:(template)