C#笔记:重构-模版模式

  • 2019 年 11 月 22 日
  • 筆記

在重构中,我们需要对代码不同但是结构相同的函数进行合并。我们可以把函数中不同的步骤都封装成一个个不同的函数,然后作为抽象函数上移到父类,父类用统一的函数进行调用。子类用不同的代码来实现这些函数(多态)

举例:

 public class PrintHtml    {          public void  PrinHT()          {              Console.WriteLine("我好帅<br>");          }      }         public class PrintWord    {          public void PrintWD()          {              Console.WriteLine("我好帅\r\n");          }  }

这两个函数,都包含打印这个操作,但是内容却大相径庭。故而我们可以使用模版模式,将获取内容的方法做为抽象函数,交给子类实现。父类用统一的函数进行调用。

public abstract class Statement      {          public voidPrint()          {              Console.WriteLine(GetContent());          }          public abstract string GetContent();      }         public class PrintHtml:Statement      {          public override string GetContent()          {              return"我好帅<br>";          }      }         public class PrintWord:Statement      {          public override string GetContent()          {              return"我好帅\r\n";          }  }

调用时:

 PrintHtml ph = new PrintHtml();             ph.Print();                PrintWord pw = new PrintWord();             pw.Print();

他们会打印不同的内容。