【问题标题】:What does the dot mean at the end of an association?关联末尾的点是什么意思?
【发布时间】:2017-12-13 23:46:45
【问题描述】:

我使用 Visual Paradigm 反转了一些 Java 代码以获得 uml 类图。该图显示了一些与一端有小黑圈的关联,这是我以前从未见过的。

Image

这绝对不是合成物,也不是收容物!谁能给我解释一下,这是什么关联?

相关代码如下:

public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> {
    public static final String TAG = DataAdapter.class.getSimpleName();

    private static Context mContext;
    private ArrayList<DataClass> mData;
    private static OnItemClickListener<DataClass> mListener;

    public static class ViewHolder extends RecyclerView.ViewHolder {}

    public DataAdapter(Context context, ArrayList<DataClass> data) {}

    public void setOnClickListener(OnItemClickListener listener) {}

    @Override
    public int getItemCount() {}

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {}

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {}
}

public interface OnItemClickListener<T> {
    public void onItemClick(T item);
}

【问题讨论】:

  • 你的班级有getter和setter吗?对于反向工具,很难区分简单的关联和组合。为此,它应该推断出关联类的生命周期:不容易
  • 你能发布整个模式和你的类的java代码吗?
  • @granier 查看我的编辑。不,不涉及 getter 或 setter。
  • 我应该提一下,我遗漏了一些细节。现在你可以看到整个事情了。
  • 你反向工具生成正确,因为 mListener 是静态的,它应该是下划线并且 DataAdapter 附近的十字不经常使用;这是一个非通航标志。我只在规范中看到它。由于您没有获取 mListener 的吸气剂,因此可以为我讨论 Arrow。

标签: uml visual-paradigm


【解决方案1】:

您看到的是所有权指标,通常称为
在这种情况下,它表示关联右侧的属性由左侧的类拥有。

来自 UML 规范 v2.5:

关联分类器对关联的所有权可能是 用一个小的实心圆圈以图形方式表示,为简洁起见,我们 将称为一个点。点将被绘制到图形路径中 线的,在它与分类器相交的点处,插入 在线的末端和代表节点的边之间 分类器。圆点直径不得超过高度的一半 聚集菱形的宽度,且应大于 线。这避免了与填充菱形符号的视觉混淆 同时保证能与线区分开来。点 表明该模型包含一个由 表示的类型的属性 点所触及的分类器。该物业由 分类器在另一端。在这种情况下,压制是正常的 所属分类器的属性隔间中的属性。

【讨论】:

  • 您的陈述“它表明关联左侧的属性由右侧的类拥有”令人困惑,因为所考虑的属性由点所在的关联端表示,也就是右边,所以属性在关联的右边,由左边的类继承。
  • @GerdWagner 你是完全正确的,我更新了我的答案,谢谢。
  • 我会说“左边的类拥有一个用右边的类键入的属性”。现在让我想到属性和属性之间的区别:uml-diagrams.org/property.html
【解决方案2】:

装饰 Geert 的正确答案:在以前的 UML 版本中,导航性(两边都有一个空心箭头)被(错误地)用于此目的。所以现在你看到一个点也意味着你可以导航到它(因为它呈现了它所接触的类类型的属性)。仍然可以混合两种符号。但这没有多大意义。我个人只会在概念阶段使用(如果有的话)导航箭头。

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多