策略模式-大道至简

文章目录

摆个类图

本质

  1. 定义一个标准策略接口Strategy,这个接口中声明一个场景下应该使用的策略(执行的逻辑)。随后具体的执行器(具体的场景)应当实现这个接口,并实现自己的策略执行逻辑。
  2. 为了方便调用,一般会额外编写一个Context(可以理解成再次使用了一次工厂模式)对外隐藏具体策略的调用逻辑,而这里一般是维护一个Strategy集合,在参数进入时进行匹配(无论是维护List在每次进入时使用for进行匹配,还是Map进行get,本质都一样)
  3. 关于其场景与策略的映射关系的维护:通常会维护一个枚举,并在具体策略实现时进行配置,实现方式通常有如下两种
    1. 在Strategy接口中额外生命一个getStrategyType方法,用于对外暴露相应的策略枚举
    2. 首先使用一个抽象类AbstractStrategy,并维护一个strategyType属性,再在每个子类继承时进行重写
    3. (一般建议使用第一个方式,毕竟第二个方式不是强约束,有可能出现漏写而造成错误)
相关推荐
云空9 小时前
《OpenClaw(macOS版)部署与使用中的安全问题及解决方案》
安全·macos·策略模式
Rsun045511 天前
13、Java 策略模式从入门到实战
java·bash·策略模式
小杍随笔1 天前
【Rust 1.95.0 正式发布!语言特性、标准库、平台支持全面升级,一文带你看完整更新】
开发语言·rust·策略模式
程序员老邢3 天前
【技术底稿 14】通用文件存储组件:SpringBoot 自动装配 + 多存储适配
java·spring boot·后端·阿里云·微服务·策略模式
北风toto4 天前
IDEA设置自定义注释(已亲测),新创建类的注释,在方法上自定义注释,设置注释签名
java·intellij-idea·策略模式
dozenyaoyida4 天前
嵌入式设计模式之策略模式(1)
经验分享·设计模式·策略模式
dozenyaoyida5 天前
嵌入式设计模式之策略模式(2)
经验分享·设计模式·策略模式
linux_map6 天前
大模型微调实战指南
人工智能·python·ai·策略模式
枫叶落雨2227 天前
策略模式实战
策略模式
回忆2012初秋8 天前
策略模式完整实现:物流价格计算引擎
策略模式