14.行为型:策略者模式
目录介绍
- 01.策略者定义和场景
- 02.策略模式的结构
- 03.具体场景实现
- 04.一个案例的演变
- 05.策略模式优缺点
- 06.回顾一下重点
01.策略者定义和场景
- 策略者定义
- 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
- 使用场景
- 针对一个对象,其行为有些是固定的不变的,有些是容易变化的,针对不同情况有不同的表现形式。那么对于这些容易变化的行为,我们不希望将其实现绑定在对象中,而是希望以动态的形式,针对不同情况产生不同的应对策略。那么这个时候就要用到策略模式了。简言之,策略模式就是为了应对对象中复杂多变的行为而产生的。
- 主要是解决什么问题
- 最常见的应用场景是,利用它来避免冗长的 if-else 或 switch 分支判断。提供框架的扩展点等等。
02.策略模式的结构
- 策略模式是对算法的包装,是把调用算法的责任(行为)和算法本身(行为实现)分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。
- 用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的