策略模式-大道至简

文章目录

摆个类图

本质

  1. 定义一个标准策略接口Strategy,这个接口中声明一个场景下应该使用的策略(执行的逻辑)。随后具体的执行器(具体的场景)应当实现这个接口,并实现自己的策略执行逻辑。
  2. 为了方便调用,一般会额外编写一个Context(可以理解成再次使用了一次工厂模式)对外隐藏具体策略的调用逻辑,而这里一般是维护一个Strategy集合,在参数进入时进行匹配(无论是维护List在每次进入时使用for进行匹配,还是Map进行get,本质都一样)
  3. 关于其场景与策略的映射关系的维护:通常会维护一个枚举,并在具体策略实现时进行配置,实现方式通常有如下两种
    1. 在Strategy接口中额外生命一个getStrategyType方法,用于对外暴露相应的策略枚举
    2. 首先使用一个抽象类AbstractStrategy,并维护一个strategyType属性,再在每个子类继承时进行重写
    3. (一般建议使用第一个方式,毕竟第二个方式不是强约束,有可能出现漏写而造成错误)
相关推荐
南玖yy1 天前
x86 汇编逻辑运算全解析:从【位操作】到实际应用(AND,OR,NOT,XOR,TEST)
开发语言·汇编·arm开发·后端·架构·策略模式
张伯毅2 天前
Flink 失败重试策略 :restart-strategy.type
大数据·flink·策略模式
magic 2454 天前
Java设计模式详解:策略模式(Strategy Pattern)
java·设计模式·策略模式
熬夜苦读学习4 天前
日志与策略模式
linux·运维·开发语言·后端·策略模式
王翼鹏5 天前
Spring boot 策略模式
java·spring boot·策略模式
向哆哆5 天前
Java中的设计模式实战:单例、工厂、策略模式的最佳实践
java·设计模式·策略模式
QQ_hoverer6 天前
抽象工厂模式与策略模式结合使用小案例
抽象工厂模式·策略模式
哈哈哈哈哈哈哈哈哈...........6 天前
【设计模式】策略模式
设计模式·策略模式
QQ_hoverer7 天前
Java设计模式之工厂模式与策略模式简单案例学习
java·开发语言·学习·设计模式·策略模式
梵高的代码色盘7 天前
工厂模式 vs 策略模式:设计模式中的 “创建者” 与 “决策者”
设计模式·策略模式