0
点赞
收藏
分享

微信扫一扫

设计模式-模板方法模式(Template Pattern)

上一篇 <<<策略模式(Strategy Pattern)
下一篇 >>>外观/门面模式(Facade Pattern)


模板方法模式:定义一个操作中的算法的骨架,差异性的实现交由子类完成。

应用场景

  • 支付回调、银行业务
  • 数据库访问的封装
  • Junit单元测试
  • Hibernate中模板程序
  • spring中JDBCTemplate,HibernateTemplate等
  • httpservlet中的doget、dopost等


模板方法模式优缺点

模板方法模式与策略模式的区别

模板方法模式实现方式核心代码

/**
* 异步回调业务
* @return
*/

public String asyncCallBack() {
// 1. 支付回调验证参数
Map<String, String> verifySignatureMap = verifySignature();
// 2. 参数验证成功,写入日志中..
payLog(verifySignatureMap);
String analysisCode = verifySignatureMap.get("analysisCode");
if (!analysisCode.equals("200")) {
return resultFail();
}
// 3. 执行回调异步相关逻辑
return asyncService(verifySignatureMap);
}

/**
* 支付回调验证参数
*
* @return
*/

protected abstract Map<String, String> verifySignature();

/**
* 每个子类需要实现 实现业务解析操作
*
* @return
*/

protected abstract String asyncService(Map<String, String> verifySignatureMap);
@Override
protected Map<String, String> verifySignature() {
//具体业务
}

@Override
protected String asyncService(Map<String, String> verifySignatureMap) {
//具体业务
}
/**
* 真实调用
*/

@RequestMapping("/test")
public String test(String beanId){
AbstractPayCallbackTemplate payCallbackTemplate = TemplateFactory.getPayCallbackTemplate(beanId);
return payCallbackTemplate.asyncCallBack();
}

相关文章链接:
<<<23种常用设计模式总览
<<<代理模式(Proxy Pattern)
<<<装饰模式(Decorator Pattern)
<<<观察者模式(Observer Pattern)
<<<单例模式(Singleton Pattern)
<<<责任链模式(Chain of Responsibility Pattern)
<<<策略模式(Strategy Pattern)
<<<外观/门面模式(Facade Pattern)
<<<建造者模式(Builder Pattern)
<<<适配器模式(Adapter Pattern)
<<<原型模式(Prototype Pattern)
<<<工厂相关模式(Factory Pattern)

举报

相关推荐

0 条评论