基数和泛化如何在UML中工作?

问题描述 投票:0回答:1

我正在尝试在简单的UML类图中理解基数和关系如何与泛化一起使用。我这里有一个简单的例子:

enter image description here

玩家正好拥有9个场,但是它们的分布无关紧要(即5个场,4个开始场或1个场和8个场)。 Field类是抽象的。如果我按照上面的方法对这个问题进行建模,那么玩家会从每种类型中获得9个字段吗?如果是这样,我该如何正确建模?

uml class-diagram
1个回答
0
投票

如果我像上面那样对这个问题进行建模,那么玩家会从每种类型中获得9个字段吗?

不同时。在您的模型中,一个播放器与9个字段相关联,知道每个字段是一个Endfield或一个专有的Startfield(假设没有其他类继承Field)

给定的Field实例不能同时是EndField和包含在内的Startfield,否则意味着Fields继承了Startfield和包含在内的Endfield(但继承方向相反)

Java中相应的类可以是:

abstract class Field { .... }
class Startfield extends Field { ... }
class Endfield extends Field { .. }

因此,玩家可以与9个Endfields或不相关的8个Endfield和1个Startfield,或不包括7个Endfields和2个Startfield,...,或不包括1个Endfield和8个Startfields,或不包括9个Startfields] >

© www.soinside.com 2019 - 2024. All rights reserved.