策略模式

概念

策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。

1.环境(Context)角色:持有一个Strategy的引用。

2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。

3.具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。

定义策略接口->实现不同的策略类->利用多态或其他方式调用策略

图片.png

应用场景

  1. 异步实现发送短信 比如阿里云、腾讯云、其他短信渠道等

  2. 聚合支付系统 银联支付、支付宝、微信支付等

  3. 联合登陆 QQ、钉钉、微信联合登陆渠道等

实现方式

建一个策略表,其中有策略id和执行具体策略逻辑的bean id

写一个策略接口,并定义一个执行策略的方法

写一个bean,并实现策略接口。把该类的首字母小写的类名写到策略表的bean id字段里,并起一个策略id。

需要执行策略的时候根据策略id从表里获取该策略的bean id,然后从spring 容器中取该bean,并执行该bean里的策略方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文的主要内容: 介绍策略模式 示例商场购物打折策略的实现 策略模式总结 源码分析策略模式的典型应用Java Co...
    小旋锋的简书阅读 1,411评论 0 1
  • 一、策略模式简介 1.1 简介 策略模式(Strategy),定义了一组算法,将每个算法都封装起来,并且使它们之间...
    卡戎li阅读 714评论 0 0
  • 前言 最近段时间,接到一个需求:开发一个聚合支付服务,对其他内部项目提供统一的接口来实现不同支付平台的支付能力发起...
    闻人的技术博客阅读 928评论 0 5
  • 策略模式 参考博文 http://baijiahao.baidu.com/s?id=160154744073950...
    普明子阅读 169评论 0 0
  • 定义 策略模式定义了一系列算法,并将每一个算法封装起来,而且他们还可以相互替换。策略模式让算法独立于使用它的客户而...
    joychic阅读 323评论 0 0