一、简介
模板方法模式
(Template Pattern) 是一种 行为型模式
,基本思路是抽象类定义算法基本骨架,相同行为定义在抽象方法中,不同行为实现部分交给子类完成。
二、示例
这里我们使用模板方法模式模拟一个支付功能,进行支付宝和微信支付,我们先定义一个支付功能的抽象类,这里提供了 4 个方法,callBack 封装处理流程的方法,verifyToken,payResult 这两个方法分别是验证 token 和流程处理的方法,在两种支付功能中代码实现不一样,所以定义为抽象类,由子类来实现,log 是打印日志,两种功能都需要打印日志,所以由抽象类统一实现。
public abstract class AbstractPayTemplate {
//回调方法
public String callBack(Map<String, String> parm) {
boolean res = verifyToken(parm);
if (res) {
log(parm);
Map<String, String> payResult = payResult(parm);
return payResult.get("res");
}
return "支付失败";
}
//验证token
protected abstract boolean verifyToken(Map<String, String> parm);
//打印日志