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

被折叠的 条评论
为什么被折叠?



