策略模式(Strategy)

意图

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

适用性

当存在以下情况时使用Strategy模式

参与者

协作

效果

Strategy模式有下面的一些优点和缺点:

示例一:通用源代码

1567685723950

示例二:简单工厂模式和策略模式结合

客户端只需要直接创建一个上下文,而不需要知道具体去创建的哪个对象。

1567685900846

示例三:简单工厂模式+策略模式+枚举类

1567685908835