内容:定义一系列的算法,把它们一个个封装起来,并且使它们可互相替换。本模式使得算法可独立于使用它的客户而变化。
角色:
- 抽象策略(Strategy)
- 具体策略(ConcreteStrategy)
- 上下文(Context)
适用场景:
- 许多相关的类仅仅是行为有异
- 需要使用一个算法的不同变体
- 算法使用了客户端无需知道的数据
- 一个类中的多种行为以多个条件语句的形式存在,可以将这些行为封装入不同的策略类中。
优点:
- 定义了一系列可重用的算法和行为。
- 消除了一些条件语句
- 可以提供相同行为的不同实现。
缺点:
- 客户必须了解不同的策略
- 策略与上下文之间的通信开销
- 增加了对象的数目
实例:
略,后面补
https://www.cnblogs.com/taosiyu/p/11293949.html