首页 > 代码库 > 【2016-10-13】【坚持学习】【Day4】【模板方法模式】
【2016-10-13】【坚持学习】【Day4】【模板方法模式】
今天学习模板方法模式
例子代码;
模板抽象类,定义了一套流程,有一些方法已经实现,有一些抽象方法需要继承它的子类实现
abstract class DataViewer { //抽象方法:获取数据 public abstract void GetData(); //具体方法:转换数据 public void ConvertData() { Console.WriteLine("将数据转换为XML格式。"); } //抽象方法:显示数据 public abstract void DisplayData(); //钩子方法:判断是否为XML格式的数据 public virtual bool IsNotXMLData() { return true; } //模板方法 public void Process() { GetData(); //如果不是XML格式的数据则进行数据转换 if (IsNotXMLData()) { ConvertData(); } DisplayData(); } }
具体实现模板类:重写抽象方法,实现具体逻辑,重写钩子方法,设置钩子方法新值
class XMLDataViewer : DataViewer { //实现父类方法:获取数据 public override void GetData() { Console.WriteLine("从XML文件中获取数据。"); } //实现父类方法:显示数据 public override void DisplayData() { Console.WriteLine("以柱状图显示数据。"); } //覆盖父类的钩子方法 public override bool IsNotXMLData() { return false; } }
主程序:
DataViewer dv; dv = new XMLDataViewer(); dv.Process();
【2016-10-13】【坚持学习】【Day4】【模板方法模式】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。