1.模板模式的定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得 子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤、
2.模板模式的UML图

3.代码实现
public abstractor AbstractClass{
public void doPrimitiveOperation1();
public void doPrimitiveOperation2();
public void templateMethod(){
doPrimitiveOperation1();
doPrimitiveOperation2();
}
}
public class ConcreteClass extends AbstractClass{
public void doPrimitiveOperation1(){
System.out.println("ddddd");
}
public void doPrimitiveOperation2(){
System.out.println("ddddddddd");
}
}
public class Client{
public static void main(String[] args){
AbstractClass template=new ConcreteClass();
template.templateMethod();
}
}
模板模式与回调接口的配合使用
public interface CallBack{
public void doPrimitiveOperation1();
public void doPrimitiveOperation2();
}
public class Template{
public void templateMethod(CallBack callBack){
callBack.doPrimitiveOperation1();
callBack.doPrimitiveOperation2();
}
}
public class Client{
public static void main(String[] args){
Template template=new Template();
template.templateMethod(new CallBack(){
public void doPrimitiveOperation1(){
System.out.println("dddddd");
}
public void doPrimitiveOperation2(){
System.out.println("ddddddddddddddd");
}
});
}
}
4.模板模式的本质:
固定算法骨架
|