关于代码的UML关联

时间:2012-11-26 03:14:52

标签: java uml

我完全理解代码但是我在理解与代码相关的UML时遇到了一些麻烦。

问题1 - 如果我有课

public class one
{....}

public class two
{
    one ob;
    public two(){ob=new one();}
}

我知道这是一个关联,但是我是否在带有箭头的类图中显示它?

enter image description here

问题2 - 如果我有以下课程

public class three
{
   public three(){.........}

   public void method() {  one obt=new one();  }
}

这是三级和一级之间的关联吗?我不确定,因为它是从方法中应用的。

2 个答案:

答案 0 :(得分:1)

首先,箭头位于另一个方向,从twoone,因为two指向one。如果你没有用箭头显示它,你说你不知道关系的方向 - 它可以是one调用twotwo调用{{1} }}。由于您知道one拥有two,因此您应该添加箭头方向。

关于您的第二个问题,是的,这是从onethree的关系,因为one需要three。此关系可以是依赖关系或关联,具体取决于onethree的作用。

答案 1 :(得分:1)

  

我知道这是一个关联,但是我是否在带有箭头的类图中显示它?

如果班级one没有提及班级two,那么你应该有一个箭头。但它从two指向one(与你如何展示它的方式相反)。原因:箭头表示可导航性。类two可以导航到类one,因为它包含一个实例。反之则不然。从技术上讲,它应该是一个空心箭头,而不是你使用的封闭形式。

  

这是三级和一级之间的关联吗?我不确定,因为它是从方法中应用的。

如果从threeone的唯一引用作为方法参数,那么您很可能将其显示为依赖项而不是关联。关联声明了实体之间的系统关系 - 例如由Purchase Order组成的Order Lines。在通常转换为成员变量(或其集合)的代码中。依赖关系是一种比关联更弱的关系形式,并不意味着系统的联系。

第h