什么是策略模式

策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现

解决多重if判断问题。

1.环境(Context)角色:持有一个Strategy的引用。
2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
3.具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。

定义策略接口->实现不同的策略类->利用多态或其他方式调用策略
为什么叫做策略模式
每个if判断都可以理解为就是一个策略。

1.设计-策略模式
1.设计-策略模式
启动遇到问题:
1.设计-策略模式
删掉:

1.设计-策略模式

策略模式优缺点

优点

算法可以自由切换(高层屏蔽算法,角色自由切换)
避免使用多重条件判断(如果算法过多就会出现很多种相同的判断,很难维护)
扩展性好(可自由添加取消算法 而不影响整个功能)

缺点

策略类数量增多(每一个策略类复用性很小,如果需要增加算法,就只能新增类)
所有的策略类都需要对外暴露(使用的人必须了解使用策略,这个就需要其它模式来补充,比如工厂模式、代理模式)
1.设计-策略模式

相关文章:

  • 2021-07-03
  • 2021-09-09
  • 2021-11-15
  • 2021-12-10
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2018-12-11
猜你喜欢
  • 2021-05-02
  • 2021-05-29
  • 2022-02-05
  • 2022-12-23
  • 2021-05-22
  • 2021-10-30
  • 2021-04-28
相关资源
相似解决方案