我完全理解代码但是我在理解与代码相关的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(); }
}
这是三级和一级之间的关联吗?我不确定,因为它是从方法中应用的。
答案 0 :(得分:1)
首先,箭头位于另一个方向,从two
到one
,因为two
指向one
。如果你没有用箭头显示它,你说你不知道关系的方向 - 它可以是one
调用two
和two
调用{{1} }}。由于您知道one
拥有two
,因此您应该添加箭头方向。
关于您的第二个问题,是的,这是从one
到three
的关系,因为one
需要three
。此关系可以是依赖关系或关联,具体取决于one
对three
的作用。
答案 1 :(得分:1)
我知道这是一个关联,但是我是否在带有箭头的类图中显示它?
如果班级one
没有提及班级two
,那么你应该有一个箭头。但它从two
指向one
(与你如何展示它的方式相反)。原因:箭头表示可导航性。类two
可以导航到类one
,因为它包含一个实例。反之则不然。从技术上讲,它应该是一个空心箭头,而不是你使用的封闭形式。
这是三级和一级之间的关联吗?我不确定,因为它是从方法中应用的。
如果从three
到one
的唯一引用作为方法参数,那么您很可能将其显示为依赖项而不是关联。关联声明了实体之间的系统关系 - 例如由Purchase Order
组成的Order Lines
。在通常转换为成员变量(或其集合)的代码中。依赖关系是一种比关联更弱的关系形式,并不意味着系统的联系。
第h