梗概

  • 有不同的操作,让调用方来选择其中一个操作
  • 每一操作都封装在一个类中暴露出去

适用范围

场景

  • 举例:旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。

优点

  • 算法可以自由切换。
  • 避免使用多重条件判断。
  • 扩展性良好。

缺点

  • 策略类会增多。
    • 如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。
  • 所有策略类都需要对外暴露。

Java实现

Site Unreachable