1

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

问题 1 - 如果我有课

public class one
{....}

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

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

在此处输入图像描述

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

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

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

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

4

2 回答 2

1

首先,箭头指向另一个方向,从twoone因为two指向one。如果你没有用箭头显示它,你就是说你不知道关系的方向 - 它可以是onecalltwotwocall one。既然你知道two拥有one,你应该添加箭头方向。

关于你的第二个问题,是的,这是从threeto onesince threerequires的关系one。这种关系可以是依赖关系或关联,取决于threeone.

于 2012-11-26T08:57:31.057 回答
1

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

如果类one没有对类的引用,two那么你应该有一个箭头。但它指向twoone与您显示它的方式相反)。原因:箭头表示可导航性。类two可以导航到类one,因为它拥有一个实例。反之则不然。从技术上讲,它应该是一个开放的箭头,而不是您使用的封闭形式。

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

three如果来自to的唯一引用one是作为方法参数,那么您很可能会显示为依赖项而不是关联。关联声明了实体之间的系统关系,例如Purchase OrderOrder Lines. 在最常转换为成员变量(或其集合)的代码中。依赖关系是比关联更弱的关系形式,并不意味着系统链接。

hth。

于 2012-11-26T09:01:09.057 回答