跳至主要內容

策略模式

大约 1 分钟

策略模式

策略模式定义了算法族,分别封装起来,让他们之间可以户型替换,此模式让算法的变化独立于使用算法的客户。

在使用策略模式进行设计开发时需要注意一些几点:

  • 找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。例如某一个功能在不同的场景中会有不同的实现,那么这个功能就可以独立出来。
  • 针对接口编程,而不是针对实现变成。就是分离出来的功能先定义一个接口,使用接口来编写代码。有利于程序的扩展和代码服用。
  • 多用组合,少用继承。

适用的场景

1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。

2、一个系统需要动态地在几种算法中选择一种。

3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。

缺点

使用策略模式会定义较多的类,如果一个项目中有多个场景都使用的策略模式,会存在类膨胀的问题。

上次编辑于:
贡献者: 诗人都藏在水底