好吧,在考虑了我在太空入侵者游戏的类图 v1 和 v2 上得到的所有有用评论后,我再次更新了我的类图以实现所有更改。
事不宜迟,我介绍 v3:
抽象Bullet类中的 Move 和 Update 方法什么都不做,方法的实现在从 bullet 继承的具体类中。这些具体类中的每一个也将继承IMovable接口的 Speed 属性,并且每个都有自己的速度集。整个抽象的Bullet类及其具体的类派生是策略模式。
我想问一些事情:Ship和Invader类一次只能有一颗子弹 - 但Invader类也可以没有子弹。例如,当所有的外星人都完好无损时,只有第一排的外星人可以发射子弹。他们上方的行无法射击。但是我将如何在Invader类中实现这一点?无法射击的入侵者的Invader类中的子弹变量应该设置还是保留为null?还是有更好的选择?
我希望我越来越接近获得正确的设计,欢迎您的所有意见!