不久前,我发布了我正在制作的应用程序的类图。得到了一些有用的提示并开始工作。设计确实很难!无论如何,我做了一个 2.0 版,但遇到了其他事情。也许有人可以就我的类图提供指点、评论或建议:-)
首先,我在 SomeInterface 中有“Speed”作为Sprite抽象类的一部分。经过考虑,我认为这不是放置“速度”的最佳位置。一个不太好的事情是我无法为界面命名,而且我不知道在属性或操作隔间中将“速度”放在哪里,因为它是一个属性......
每个对象(子弹、入侵者、船)都以自己的速度移动,所以我将“速度”放入界面。所有对象都继承自超类Sprite,并且仅覆盖 Update() 方法。Bullet抽象类对从Sprite获得的 Update 方法没有任何作用,它只是显示它是从那里获得的。我不知道这是否是正确的方法,或者我应该把它排除在外,只在覆盖它的类中显示它?
另一个我不知道如何处理的问题是入侵者制作的动画。我得到了以下属性:SheetSize、FrameSize 和 CurrentFrame。工作表包含外星人图片(如翻书),FrameSize 仅用于选择工作表上的帧,而 CurrentFrame ......嗯,保存当前帧。由于 Ship 和 Bullet 没有动画,因此这些属性对它们没有用处。把它们放在哪里?
最后,我没有在哪里实现IBulletBehavior。首先,我让每个子弹行为都实现了 IBulletBehavior,但切换到让抽象 Bullet 类实现它。有没有规定要拿哪一个的规则?