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();
他们会打印不同的内容。