什么是策略模式

定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
主要是为了解决在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。

场景

假设我们现在有一群鸭子,有橡皮鸭和丑小鸭,橡皮鸭不能飞不能叫,丑小鸭能飞能叫,它们都可以游泳。 我们可以先把飞行这两个行为抽象出两个接口,然后再去实现这两个接口。