【模板模式】 Template Pattern
2014-08-11 12:56
330 查看
模板模式 又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤(这个我觉得很抽象,很抽象)
e:学会说“不”,把时间用在更重要的事情上
案例:在一组监控的程序中,我们需要记录程序启动和结束一些信息(日志能通过上下文的信息根据约定自动生成)
View Code
我们把LogStart(),LogEnd()的权限都设置成private,这样子类就不能改变我们固定的算法了(这是完全根据业务需求来决定),把Execute提到父类,让父类来控制流程,而只让子类填写可变的算法(函数),我们子类编写人员只要根据父类的限定(abstract的方法)来编写对应的算法就好了,这样在写单元测试的时候也更加的单一化,只需要对子类自身实现的算法进行有效性测试就可以了。
e:学会说“不”,把时间用在更重要的事情上
案例:在一组监控的程序中,我们需要记录程序启动和结束一些信息(日志能通过上下文的信息根据约定自动生成)
//Ingore the unreasonable class name, just for presentation public abstract class BaseClass { private void LogStart() { Console.WriteLine("Log Start Infomation"); } private void LogEnd() { Console.WriteLine("Log End Infomation"); } public abstract void DoWork(); public void Execute() { LogStart(); DoWork(); LogEnd(); } } public class FirstSubClass : BaseClass { public override void DoWork() { Console.WriteLine(this.GetType().Name + "Do Work"); } }
View Code
我们把LogStart(),LogEnd()的权限都设置成private,这样子类就不能改变我们固定的算法了(这是完全根据业务需求来决定),把Execute提到父类,让父类来控制流程,而只让子类填写可变的算法(函数),我们子类编写人员只要根据父类的限定(abstract的方法)来编写对应的算法就好了,这样在写单元测试的时候也更加的单一化,只需要对子类自身实现的算法进行有效性测试就可以了。
若有不对,不足之处请指出,请不要只写一个:漏洞百出此类评价,谢谢大家的指点和帮助!
相关文章推荐
- 设计模式——模板方法模式【Template Method Pattern】
- 行为模式之模板方法模式(Template Pattern)C++实现
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- Template Method Pattern 模板方法模式
- 第 9 章 模板方法模式【Template Method Pattern】
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- 设计模式19:Template Method Pattern (模板方法模式)
- 设计模式 - Template Method Pattern(模板方法模式)
- The Template Method Pattern 模板方法模式
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- 设计模式 模板方法(Template Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 模板方法模式 The Template Method Pattern
- 设计模式 - Template Method Pattern(模板方法模式)
- Template Method Design Pattern - 模板方法设计模式
- 模板方法模式(Template Mothod Pattern)
- C++ 模板:奇特递归模板模式(Curiously Recurring Template Pattern -CRTP)和 静多态(Static polymorphism)
- 模板方法模式——Template Method Pattern
- 模板方法模式【Template Method Pattern】
- 设计模式之模板模式(Template pattern)C#源代码