在Java场景中解决UML

时间:2012-04-12 12:39:48

标签: java inheritance computer-science composition aggregation

我是初学者,通过回答过往考试试卷上的问题来学习java并修改考试,并且有一个问题我会坚持下去。

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

在上面的场景中绘制这些类的UML图,清除显示类之间的相应连接器。 (没有必要在课堂框中提供任何细节。)

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

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

GAME和LEVEL通过撰写相关

LEVEL通过聚合与HERO和ENEMY相关

GAME通过继承与GAMEWORLD相关

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

2 个答案:

答案 0 :(得分:1)

几乎是正确的。游戏不会继承GameWorld。 GameWorld有一个聚合指向游戏(它是一对多的关系)。

答案 1 :(得分:1)

除GAME和GAMEWORLD关系外,请更正。

  • HERO和ENEMY都继承自CHARACTER =>的继承
  • GAME包含LEVELS,但没有游戏就无法存在等级=>的组合物
  • LEVEL可以包含一个HERO字符和几个ENEMY字符,但它也可以是空的=>的聚合
  • GAME在GAMEWORLD中进行,但没有Gameworld => GAME就不能存在的组合物

查看维基百科上的the difference between Aggregation and Composition