问题
单项选择题
某软件公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。为支持将来能够模拟更多种类鸭子的特征,采用______设计的类图如图6—5所示。在图6—5中,类Duck描述了抽象的鸭子,类FlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为。
A.Builder模式
B.Bridge模式
C.Command模式
D.Strategy模式
答案
参考答案:D
解析: Strategy(策略)模式的设计意图是使得算法可独立于使用它的客户而变化。依题意,为支持将来能够模拟更多种类鸭子的特征,该模拟鸭子游戏系统采用策略设计模式(Strategy)设计的类图如图6-5所示。在图6-5中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallaArdDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为和不发声的行为。