1.名词解释
模板方法:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,模板方法可以使子类可以不修改一个算法框架的前提下即可重构该方法的某些特定步骤。模板方法通过把不变行为搬到父类,去除子类中的重复代码。
2.代码示例
模板方法抽象类
package DesignPattern.TemplateMethod;
public abstract class TemplateMethod {
public abstract void primitiveMethod1();
public abstract void primitiveMethod2();
public void templateMethod() {
this.primitiveMethod1();
this.primitiveMethod2();
}
}
模板方法子类A
package DesignPattern.TemplateMethod;
public class ConcreateMethodA extends TemplateMethod {
@Override
public void primitiveMethod1() {
// TODO Auto-generated method stub
System.out.println("ConcreateMethodA.primitiveMethod1");
}
@Override
public void primitiveMethod2() {
// TODO Auto-generated method stub
System.out.println("ConcreateMethodA.primitiveMethod2");
}
}
模板方法子类B
package DesignPattern.TemplateMethod;
public class ConcreateMethodB extends TemplateMethod {
@Override
public void primitiveMethod1() {
// TODO Auto-generated method stub
System.out.println("ConcreateMethodB.primitiveMethod1");
}
@Override
public void primitiveMethod2() {
// TODO Auto-generated method stub
System.out.println("ConcreateMethodB.primitiveMethod2");
}
}
主控程序
package DesignPattern.TemplateMethod;
public class Client {
public static void main(String[] args) {
TemplateMethod tm = new ConcreateMethodA();
tm.templateMethod();
tm = new ConcreateMethodB();
tm.templateMethod();
}
}