模板方法模式


定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些选定步骤。


publicabstractclassAbstractClass
{
//基本方法
protect abstractvoiddoSomething();
protect abstractvoiddoAnything();
//模板方法
publicvoidtemplateMethod()
{
//调用基本方法,完成相关逻辑
this.doSomething();
this.doAnything();
}
}

基本方法:是由子类实现的方法,并且在模板方法被调用

模板方法:可以有多个或几个,一般是一个具体的方法,也就是一个框架,实现对基本方法的调度,完成固定逻辑。(为了防止恶意的操作,可以加上final关键字,不允许被重写)



-----摘抄自设计模式之禅