模拟鸭子应用

先来大致描叙一下最初项目的要求:

有一款鸭子应用游戏,她的内容大概是:游戏中有许多鸭子,每个鸭子都会叫和游泳,不同的是鸭子之间的外观不一样。

最初项目设计:

鸭子超类(Duck),有叫方法(呱呱叫),游泳方法,外观方法(虚函数);

鸭子子类,继承父类并实现各自的外观。

 

项目新要求:

需考虑以后增加鸭子的种类:橡皮鸭(吱吱叫,不会飞)、诱饵鸭(不会飞,不会叫)......

需考虑以后会增加鸭子飞行方式;

增加鸭子飞方法(并不是所有的鸭子都会飞,部分鸭子不会叫)

项目设计:

现在,为了要分开“变化和不会变化的部分”,我们准备建立两组类(完全远离鸭子超类),一个是飞相关的,一个是叫相关的,每一组将实现各自的动作。比方说,我们可能有一个类实现“呱呱叫”,另一个类实现“吱吱叫”,还有一个类实现安静。以上体现第一个设计原则:分开改变和不变的类;

另外,Duck类中修改飞和叫两个方法,将fly()和quack()修改为performFly(),performQuack(),增加两个变量飞(FlyBehavior  flybehavior)、叫(QuackBehavior    quackbehavior);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值