定义一个操作中的算法的骨架,而将一些步骤延迟到
子类中。Template Method使得子类可以不改变一个
算法的结构即可重定义该算法的某些特定步骤。
——《设计模式》GoF
——《设计模式》GoF
具体实现例子:
public abstract class AbstractClass
{
public void TemplateMethod()
{
Method1();
Method2();
Method3();
}
protected abstract void Method1();
protected abstract void Method2();
protected abstract void Method3();
}
}
这个抽象类定义了算法的一个框架,但是没有给出具体的实现,我们可以给出这个抽象类的具体实现,来实现算法但是不用管其大体框架。
public class ConcreteClass extends AbstractClass
{
protected void Method1()
{
//方法实现
}
protected void Method2()
{
//方法实现
}
protected void Method3()
{
//方法实现
}
}