摘要:classDuck{protected:FlyBehavior*(4);QuackBehavior*(5);public:voidfly(){(6);}voidquack(){(7);};virtualvoiddisplay()=0;};classRubberDuck:publicDuck{public:RubberDuck(){flyBehavior=new(8);quackBehavior=new(9);}RubberDuck(){if(!flyBehavior)delete
class Duck{
protected:
FlyBehavior * (4) ;
QuackBehavior * (5) ;
public:
void fly(){(6) ; }
void quack() {(7) ; };
virtual void display()=0;
};
class RubberDuck:public Duck{
public:
RubberDuck(){
flyBehavior = new(8) ;
quackBehavior = new(9) ;
}
RubberDuck(){
if(!flyBehavior) delete flyBehavior;
if(!quackBehavior) deletequackBehavior;
}
void display(){ /*此处省略显示橡皮鸭的代码 */}
};
//其它代码省略
试题七(共15 分)
阅读下列说明和Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
某游戏公司现欲开发一款面向儿童的模游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子类及其特征如表 7-1 所示:
表7-1
为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如
图 7-1 所示:
其中,Duck 为抽象类,描述了抽象的鸭子,而类 RubberDuck、MallardDuck、CottonDuck和 RedHeadDuck 分别描述具体的鸭子种类,方法 fly()、quack()和 display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior 与 QuackBehavior 分别用于表示抽象的飞行行为与发声行为;类 FlyNoWay 与 FlyWithWings 分别描述不能飞行的行为和用翅膀飞行的行为;类 Quack、Squeak 与QuackNoWay 分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行与不发声的行为。请填补以下代码中的空缺。
软考备考资料免费领取
去领取