模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。
模版方法模式是通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。
AbstractClass.java
public abstract class AbstractClass {
//一些抽象行为放到子类中去实现
public abstract void primitiveOperation1();
public abstract void primitiveOperation2();
//模版方法,给出逻辑的骨架,逻辑的组成是一些相应的抽象操作,他们都推迟到子类中去实现
public void TemplateMethod(){
primitiveOperation1();
primitiveOperation2();
}
}
ConcreteClassA.java
public class ConcreteClassA extends AbstractClass{
@Override
public void primitiveOperation1() {
System.out.println("具体A方法1实现");
}
@Override
public void primitiveOperation2() {
System.out.println("具体A方法2实现");
}
}
ConcreteClassB.java
public class ConcreteClassB extends AbstractClass{
@Override
public void primitiveOperation1() {
System.out.println("具体B方法1实现");
}
@Override
public void primitiveOperation2() {
System.out.println("具体B方法2实现");
}
}
Test.java
public class Test {
public static void main(String[] args) {
AbstractClass a;
a=new ConcreteClassA();
a.TemplateMethod();
a=new ConcreteClassB();
a.TemplateMethod();
}
}