Java UML中的多态性建模——对抽象类的依赖

Java UML中的多态性建模——对抽象类的依赖,java,polymorphism,uml,abstract-class,Java,Polymorphism,Uml,Abstract Class,在过去几个学期的课程中,我花了很多时间试图确保我能正确地向我的学生介绍这一点。我没有发现任何东西显示这种特殊的关系。这学期我想知道我做得对 我们有一个抽象类Player和两个扩展它的具体类(Pitcher和PositionPlayer)。然后我们有一个类,团队,其地图声明为 在我看来,团队似乎依赖于Player(抽象类),但我认为可以为子类显示依赖性。请告诉我哪一个是正确的,上面的还是下面的?(我的UML编辑器不会使用斜体,因此使用标记)。提前感谢您的帮助 两者都是正确的。顶部更一般,底部更

在过去几个学期的课程中,我花了很多时间试图确保我能正确地向我的学生介绍这一点。我没有发现任何东西显示这种特殊的关系。这学期我想知道我做得对

我们有一个抽象类Player和两个扩展它的具体类(Pitcher和PositionPlayer)。然后我们有一个类,团队,其地图声明为


在我看来,团队似乎依赖于Player(抽象类),但我认为可以为子类显示依赖性。请告诉我哪一个是正确的,上面的还是下面的?(我的UML编辑器不会使用斜体,因此使用标记)。提前感谢您的帮助


两者都是正确的。顶部更一般,底部更具体。但两者都说明了同样的问题

下面将显示在何处使用设计的下部。如果您有第三个
Player
子类,而
Team
不依赖于您,则使用较低的表示法-不依赖于新的子类


可能不太现实,但那可能是一些虚构的游戏星座。

如果团队包含MAP类型的属性,对我来说,这意味着团队包含一个玩家列表,每个玩家都由一个id标识


如果团队包含基数为0..n的Player类型属性,则表示该团队与Player关联

因为每个玩家都由一个整数标识,对我来说,这是一个合格的关联


谢谢!我真的很感谢你抽出时间。我也很高兴知道我没有用我教它的方式误导任何人。
Team
如何依赖于它不使用且一无所知的类?即使它是正确的UML(相信你),这也不是传达有意义关系的明智方式,任何人都不应该这样做@AApplin,标准也应该改变。@Oleg the
小丑
只是一个
玩家
。不是
团队的一部分,但在(未显示)完整的领域中,他可能扮演另一个角色。只是作为一个
玩家
,而不是作为团队成员。@Oleg我可能误解了。
团队
仅显示其名称,而不显示内部任何内容。因此,它可能包含一个
播放器
列表。以上只是为了简短。另外(刚刚注意到)
玩家
应该用斜体字表示为抽象。@ThomasKilian他们没有区别,OP询问如何用
玩家
地图
表示
团队
。使
团队
依赖于
玩家的子类
违反了OOP原则。将其设计为
Player
Joker
子类不能被
Team
使用的方式更糟糕。不知道为什么要删除您的评论。我设法看到了,所以我会回应。如果
团队
需要将
球员
下压到
投手
上,那么底部是好的。我想说的是,这是一个糟糕的设计,在页面的底部有一些有用的链接,有些关联。(当然,听起来整个网站在任何情况下都可能与你相关。)抱歉,玩家的基数应该是一,对于一个id,就只有一个玩家。如果这是一个答案,请以一种能够真正让人明白的方式编辑它。如果这是一个问题,请问另一个问题。这是问题的答案事实上,对我来说,依赖不是正确的答案,因为它是一种联系。。。我更喜欢把答案写成一个问题,对我来说这更亲切。所以我重写了我的答案,以前的写作方式更开放、更亲切,但如果你喜欢这样:我不介意。好多了,谢谢。它可以是开放和友好的,这取决于你(尽管其他人可能不喜欢它,并投票否决或编辑掉)。对于你的原始版本,我不确定这是一个答案还是一个问题,并考虑将其标记,这是不好的。
    <Integer, Player>