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