九折技术 九折技术
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

HoldDie

长期有耐心,一切才刚刚开始!
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 代码整洁

  • 重构

  • 设计模式

    • 创建型-单例模式
    • 创建型-工厂模式
    • 创建型-建造者模式
    • 创建型-原型模式
    • 结构型-代理模式
    • 结构型-桥接模式
    • 结构型-装饰器模式
    • 结构型-适配器模式
    • 结构型-门面模式
    • 结构型-组合模式
    • 结构型-享元模式
    • 行为型-观察者模式
    • 行为型-模板模式
    • 行为型-策略模式
      • 行为型-责任链模式
      • 行为型-状态模式
      • 行为型-迭代器模式
      • 行为型-访问者模式
      • 行为型-备忘录模式
      • 行为型-命令模式
      • 行为型-解释器模式
      • 行为型-中介模式
    • 架构
    • 设计模式
    holddie
    2020-09-28

    行为型-策略模式

    # 策略模式

    • Strategy Design Pattern
    • 策略模式定义了一簇算法类,将每个算法分别封装起来,让他们可以相互替换。
    • 策略模式可以使算法的变化独立于使用它们的客户端。
    • 策略模式用来解耦策略的定义、创建、使用。
    • 一个完整的策略模式由三部分组成
      • 策略类的定义比较简单,包含一个策略接口和一组实现这个接口的策略类。
      • 策略的创建由工厂类来完成,封装策略创建的细节。
      • 策略模式包含一组策略可选,客户端代码如何选择使用哪种策略,有两种确定方法:编译时静态确定和运行时动态确定。
    • 通过策略模式来移除 if-else 分支判断,本质上就是借助“查表法”,根据 type 查表替代根据 type 分支判断。
    • 策略模式主要作用是解耦策略的定义、创建和使用,控制代码的复杂度,让每部分倒不至于过于复杂、代码量过多。
    • 对于复杂的代码来说,策略模式还能让其满足开闭原则,添加新策略的时候,最小化、集中化代码改动,减少引入 bug 的风险。

    # 实际应用

    • 我们通过一个配置文件或者自定义的 annotation 来标注都有哪些策略类。
    • 策略工厂类读取配置文件或者搜索被 annotation 标注的策略类,然后通过反射动态地加载这些策略类、创建策略对象。
    • 当我新添加一个策略的时候,只需要将这个被添加的策略类添加到配置文件或者用 annotation 标注即可。
    编辑
    #策略模式
    上次更新: 2020/10/18, 14:10:00
    行为型-模板模式
    行为型-责任链模式

    ← 行为型-模板模式 行为型-责任链模式→

    最近更新
    01
    行为型-访问者模式
    11-24
    02
    行为型-备忘录模式
    11-24
    03
    行为型-命令模式
    11-24
    更多文章>
    Theme by Vdoing | Copyright © 2019-2020 HoldDie | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式