1.定义
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2.UML图
3.Code
AbstractClass.java
public abstract class AbstractClass{
public abstract void Operation1();
public abstract void Operation1();
public void Method(){
Operation1();
Operation2();
}
}
ConcreteClass1.java
public class ConcreteClass1 extends AbstractClass{
public void Operation1(){
System.out.println("do operation1");
}
public void Operation2(){
System.out.println("do operation2");
}
}
ConcreteClass2.java
public class ConcreteClass2 extends AbstractClass{
public void Operation1(){
System.out.println("do operation3");
}
public void Operation2(){
System.out.println("do operation4");
}
}
Client.java
public class Client{
public static void main(String[] args){
AbstractClass ac;
ac = new ConcreteClass1();
ac.Method();
ac = new ConcreteClass2();
ac.Method();
}
}
输出:
do operation1
do operation2
do operation3
do operation4
4.总结
其实平时经常用到模板方法模式,只是不知道做法的名字~
模板方法模式就是通过把不变的行为封装在父类,把变化的部分抽出来让子类实现,这样子类就不用去实现重复的行为了。模板方法模式就是充分利用了封装和多态特性,利用父类实现代码的复用。