0

我是学习Java的初学者,并通过回答以前过去试卷上的问题来修改我的考试,并且有一个问题我被困住了。

游戏的 OO 设计确定了以下类别:GAME、LEVEL、CHARACTER、HERO、ENEMY 和 GAMEWORLD。HERO 和 ENEMY 都是 CHARACTER 的类型。游戏发生在特定的 GAMEWORLD 中。一个游戏有几个级别。每个级别都有一个英雄角色和许多可以出现和删除的敌人角色。

在上面的场景中为这些类绘制一个 UML 图,清楚地显示类之间的适当连接器。(无需在类框中提供任何详细信息。)

我不知道如何在这里绘制 UML 连接器,但这就是我的回答:

HERO 和 ENEMY 通过继承与角色相关

GAME 和 LEVEL 通过 Composition 关联

LEVEL 通过聚合与 HERO 和 ENEMY 相关联

GAME 通过继承与 GAMEWORLD 相关联

如果有人可以帮我检查这些答案是否正确,我将不胜感激?提前致谢。

4

2 回答 2

1

几乎是对的。游戏不继承自 GameWorld。GameWorld 有一个指向 Game 的聚合(这是一对多的关系)。

于 2012-04-12T12:51:49.300 回答
1

正确,除了 GAME 和 GAMEWORLD 关系。

  • HERO 和 ENEMY 都继承自 CHARACTER => Inheritance
  • GAME 包含关卡,但没有游戏就无法存在关卡 =>合成
  • LEVEL 可以包含一个 HERO 字符和几个 ENEMY 字符,但也可以为空 =>聚合
  • GAME 发生在 GAMEWORLD 中,但没有 Gameworld 就无法存在 GAME => Composition

查看 Wikipedia 上的聚合和组合之间的区别。

于 2012-04-12T12:58:05.047 回答