【问题标题】:UML: Association with typed class or assigned subclassUML:与类型化类或指定子类的关联
【发布时间】:2015-08-18 10:46:40
【问题描述】:

我正在尝试对一些现有的 java 代码进行逆向工程,创建一个 UML 类图。

注意:MovingRectangle 扩展了 MovingShape

public class AnimationPanel {

    private MovingShape s;

    public AnimationPanel {
        s = new MovingRectangle;
    }
}

在我的 UML 图中,关联应该是从 AnimationPanel 到 MovingShape(实例变量的类)还是从 AnimationPanel 到 MovingRectangle(分配给实例变量的类)?

【问题讨论】:

  • 我猜应该是MovingRectangle 而不是MovingShape(反之亦然)?
  • 我想应该是MovingShape,然后从图中你会看到有很多 MovingShape 具体类。
  • 我同意克里斯蒂安的观点。他应该是一个答案而不是评论!
  • 是的,很可能。但这也可能是复制/粘贴问题,因为我们看不到源 ;-)

标签: java inheritance uml


【解决方案1】:

不推荐使用导航来显示关联的所有权。您应该将AnimationPanel 附近的拥有属性(小点)设置为MovingRectangle,如下所示:

另请参阅 my answer here 引用上层建筑。

【讨论】:

  • 合成链接为什么指向 MovingRectangle 类而不是 MovingShape 类有什么特别的理由吗?
  • 它不是合成物(应该是钻石)。它的所有权(通过链接查看我的编辑)
  • 啊,我一开始以为你的圆点是钻石。
【解决方案2】:

我补充说: - MovingRectangle 和 Moving Shape 之间的概括, - 属性名为“s”并且是私有的。

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多