浅谈前端设计模式之策略模式

135 阅读2分钟

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

定义:

策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理

目的:

策略模式的本意将算法的使用与算法的实现分离开来,将一系列算法、函数、规则封装起来,让它们可以互相替换,避免多重判断调用这些算法、函数、规则,适用于有多个判断分支的场景

优点:

  1. 有效避免多重条件选择语句,增强代码可读性
  2. 提供了对开闭原则的完美支持,可以在不修改原代码的情况下,灵活增加新算法
  3. 易于拓展并增强了算法、函数、规则可复用度
  4. 提供相同行为的不同实现,客户可以根据不同时间或空间要求选择不同的
  5. 把算法、函数、规则的使用和实现更好的分类
  6. 很好解决了多重条件语句不好维护的问题

缺点:

  1. 算法、函数、规则要对外安全暴露,因为使用者要决定是用哪个算法,所以要了解算法内部功能。
  2. 在使用策略模式时会造成很多的策略类,算法、函数、规则类数量增多,每个算法、函数、规则类都是一个类
  3. 客户端必须知道所有的策略类且能够使用,只适用于客户端知道的算法的情况

用途:

  1. 解决多重条件业务问题
  2. 解决多重嵌套条件业务问题
  3. 表单校验规则、弹框等组件使用