Java设计模式–摸板方法模式
- 定义
定义一个操作的算法骨架,而将一些步骤延迟到子类中,Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
- 一个简单的实现
public class TemplateMethodTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
AbstractClass subClass = new SubClass();
subClass.operation();
System.out.println("--------------------");
AbstractClass subClass2 = new SubClass2();
subClass2.operation();
}
}
abstract class AbstractClass{
public void operation() {
System.out.println("pre....");
System.out.println("step1....");
System.out.println("step2....");
templateMethod();
}
abstract protected void templateMethod();
}
class SubClass extends AbstractClass{
@Override
protected void templateMethod() {
// TODO Auto-generated method stub
System.out.println("SubClass excuted....");
}
}
class SubClass2 extends AbstractClass{
@Override
protected void templateMethod() {
// TODO Auto-generated method stub
System.out.println("SubClass2 excuted.....");
}
}
- 源码中的应用
-
javax.servlet.http.HttpServlet org.springframework.web.servlet.mvc.AbstractController