您的位置:首页 > 其它

【模板模式】 Template Pattern

2014-08-11 12:56 330 查看
模板模式 又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤(这个我觉得很抽象,很抽象)

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的方法)来编写对应的算法就好了,这样在写单元测试的时候也更加的单一化,只需要对子类自身实现的算法进行有效性测试就可以了。

若有不对,不足之处请指出,请不要只写一个:漏洞百出此类评价,谢谢大家的指点和帮助!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: