模板方法模式:定义一个操作中的 算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法 的结构即可重定义该算法的某些特定步骤
用途:当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详尽的层次上的思想可能不同时我们通常考虑用模板方法模式来处理。
模板方法模式的类图:
public abstract class AbstractClass {
public abstract void PrimitiveOperation1();
public abstract void PrimitiveOperation2();
public void TempalteMethhod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
}
public class ConcreteClass1 extends AbstractClass {
@Override
public void PrimitiveOperation1() {
System.out.println("ConcreteClass1的Operation1方法");
}
@Override
public void PrimitiveOperation2() {
System.out.println("ConcreteClass1的Operation2方法");
}
}
public class ConcreteClass2 extends AbstractClass {
@Override
public void PrimitiveOperation1() {
System.out.println("ConcreteClass2的Operation1方法");
}
@Override
public void PrimitiveOperation2() {
System.out.println("ConcreteClass2的Operation2方法");
}
}
public class Client {
public static void main(String[] args) {
AbstractClass cc1=new ConcreteClass1();
AbstractClass cc2=new ConcreteClass2();
cc1.TempalteMethhod();
cc2.TempalteMethhod();
}
}