面向对象课程完结即可编写一个简单的飞机大战程序。我觉得我需要总结一下
飞机大战中类的设计:
父类:FlyingObject(抽象类)
接口:Award 、Enemy
子类:Hero、Bullet、Airplane (实现Enemy接口)、 Bee (实现Award接口)
运行类:ShootGame
Hero、Bullet、Airplane 、 Bee 均继承自FlyingObject类,FLyingObject具有他们的公共属性以及行为,因为FlyingObject并不需要被实例化,那么大可以将之设计为抽象类。
Award、Enemy是两个接口,分别表示奖励和敌人,Award中定义了奖励类型常量和获取奖励方法,Enemy定义了获取敌机含有的分数方法。Bee、Airp继承了FlyingObject类的同时分别实现了Award、Enemy接口,让他们继承父类的同时也具有了接口中的属性方法。接口的设计提高了程序的扩展性,如果说还想添加一个大黄蜂(BigBee)类,既可以获得奖励又能获得分数,这个类继承FlyingObject在实现Award和Enemy接口即可。一个类是能继承一个父类,但可以实现多个接口,接口让程序的扩展性大大提升。是不是顿时觉得接口萌萌哒,特别好用呢。
ShootGame则是应用程序具体逻辑的实现,定义了舞台界面的属性、方法。其实质是数据的使用层,之前的几个类都是数据基础,这个类则是将数据组装。额,希望我的理解没有问题。
一个好的应用程序必定有一个好的设计,继需求分析阶段后,类和数据结构的设计同样是一个非常重要的阶段,在几次的项目实践中,我大概已经领悟到了这一点。没有好