【发布时间】:2011-02-21 23:48:52
【问题描述】:
好吧,在考虑了我在太空入侵者游戏的类图 v1 和 v2 上获得的所有有用的 cmets 之后,我再次更新了我的类图以实现所有更改。
事不宜迟,我介绍 v3:
Bullet 抽象类中的 Move 和 Update 方法什么都不做,方法的实现在从 bullet 继承的具体类中。这些具体类中的每一个也将继承 IMovable 接口的 Speed 属性,并且每个都有自己的速度设置。整个抽象的 Bullet 类及其具体的派生类就是策略模式。
我想问一些事情:Ship 和 Invader 类一次只能有一颗子弹 - 但 Invader 类可以也没有子弹。这是例如当所有外星人都完好无损时,只有第一排外星人可以发射子弹。他们上方的行无法射击。但是我将如何在 Invader 类中实现这一点?不能射击的入侵者的Invader类中的子弹变量应该设置还是留空?还是有更好的选择?
我希望我越来越接近获得正确的设计,欢迎所有的cmets!
【问题讨论】:
-
看起来比 v1 好多了:-)。 Ship 和 Invader 会只有 1 颗子弹吗?
-
谢谢! :-) 是的,飞船和每个入侵者都只有一颗子弹,尽管屏幕上随时可能有 4 颗子弹——三颗来自不同的外星人,一颗来自飞船。
标签: design-patterns architecture class-diagram