1.模板方法:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
处理某个流程的的代码已经具备,但是其中某个结点的代码暂时不能确定。
因此采用工厂方法模式,将这部分代码实现转移给子类完成,即处理步骤在父类中定义好,具体的实现延迟到子类中。
2.类图:
3.代码:
实例:购物---> 1.下单--->2.支付--->3.评价
public abstract class ShopTemplateMethod {
//模板方法中的业务处理逻辑
//1.下单
public void order() {
System.out.println("下订单!");
}
//2.支付(留给子类实现,选择不同的支付方式)
public abstract void pay();
//3.评价
public void evaluate() {
System.out.println("反馈评分");
}
//模板方法
public final void process() {
this.order();
this.pay();
this.evaluate();
}
}
public class WeiXin extends ShopTemplateMethod {
@Override
public void pay() {
System.out.println("微信支付");
}
}
public class ZhiFuBao extends ShopTemplateMethod {
@Override
public void pay() {
System.out.println("支付宝支付");
}
}
public class Client {
public static void main(String[] args) {
ShopTemplateMethod templateWeiXin = new WeiXin();
templateWeiXin.process();
ShopTemplateMethod templateZhiFuBao = new ZhiFuBao();
templateZhiFuBao.process();
}
}
