如果一个流程固定是几个步骤,只有局部发生了很小的变化,但是主流程框架不会动,这个时候就会需要模版方法模式
模版方法的根本在 建立抽象方法 , 使用内部实现类来实现这个抽象方法, 这样这个 钩子函数就可以被定制,来对付变化的情况
使用场景 : 数据库的访问封装, spring中的 jdbc templete , hibernate templete;
代码实现:
类
package template;
public abstract class BankTemplateMethod {
public void takeNum() {
System.out.println("排队取号");
}
public abstract void transact();
public void evaluate() {
System.out.println("反馈评分");
}
public void process() {
this.takeNum();
this.transact(); // 回调函数
this.evaluate();
}
}
客户端调用
package template;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
// BankTemplateMethod b= new B1();
// b.process();
BankTemplateMethod b= new BankTemplateMethod() {
@Override
public void transact() {
// TODO Auto-generated method stub
System.out.println("取款");
}
};
b.process();
}
}
//class B1 extends BankTemplateMethod{
//
// @Override
// public void transact() {
// // TODO Auto-generated method stub
// System.out.println("取款");
// }
//
//}