策略模式-大道至简

文章目录

摆个类图

本质

  1. 定义一个标准策略接口Strategy,这个接口中声明一个场景下应该使用的策略(执行的逻辑)。随后具体的执行器(具体的场景)应当实现这个接口,并实现自己的策略执行逻辑。
  2. 为了方便调用,一般会额外编写一个Context(可以理解成再次使用了一次工厂模式)对外隐藏具体策略的调用逻辑,而这里一般是维护一个Strategy集合,在参数进入时进行匹配(无论是维护List在每次进入时使用for进行匹配,还是Map进行get,本质都一样)
  3. 关于其场景与策略的映射关系的维护:通常会维护一个枚举,并在具体策略实现时进行配置,实现方式通常有如下两种
    1. 在Strategy接口中额外生命一个getStrategyType方法,用于对外暴露相应的策略枚举
    2. 首先使用一个抽象类AbstractStrategy,并维护一个strategyType属性,再在每个子类继承时进行重写
    3. (一般建议使用第一个方式,毕竟第二个方式不是强约束,有可能出现漏写而造成错误)
相关推荐
xiaodaidai丶2 天前
设计模式之策略模式
设计模式·策略模式
czy87874756 天前
C语言实现策略模式
c语言·排序算法·策略模式
低头不见6 天前
策略模式上下文管理
windows·python·策略模式
R.lin9 天前
Java支付对接策略模式详细设计
java·架构·策略模式
xiaoye370811 天前
23种设计模式之策略模式
设计模式·策略模式
冰糖拌面17 天前
CRLF行结束符问题
策略模式
原来是好奇心18 天前
告别if-else!使用策略模式优雅处理多种MQTT消息类型
java·mqtt·设计模式·策略模式·emqx
Mr_WangAndy19 天前
C++设计模式_行为型模式_策略模式Strategy
c++·设计模式·策略模式·依赖倒置原则
mjhcsp19 天前
C++ long long 类型深度解析:大整数处理的基石
开发语言·c++·策略模式·long long
太过平凡的小蚂蚁23 天前
策略模式:让算法选择像点菜一样简单
算法·策略模式