Strategy 模式的意图:
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使算法可独立于使用它的客户而变化。
说得太抽象了。下面来看下例子(2007 软件设计师考试——上):
鸭子种类 | 发声特征 | 飞行特征 | 外观特征 |
灰鸭(MallardDuck) | 发出"嘎嘎"声(Quack) | 用翅膀飞行(Fly With wings) | 灰色羽毛 |
红头鸭(RedHeadDuck) | 发出"嘎嘎"声(Quack) | 用翅膀飞行(Fly With wings) | 灰色羽毛 |
棉花鸭(CottonDuck) | 不发声(QuackNoWay) | 不能飞行(FlyNoWay) | 白色 |
橡皮鸭(RubberDuck) | 发出橡皮与空气摩擦声(Squeak) | 不能飞行(FlyNoWay) | 黑白橡皮颜色 |