compareTo 方法是 UML 中的自关联吗?
Is an compareTo method a self association in UML?
我目前正在制作一个包和 class 图。我有一个使用 compareTo 方法的 class。我的问题是当我建模时,我是否必须进行自我关联?如果是这样,自关联是依赖线还是普通线?
代码示例:
public class Example implements Comparable<Example> {
private String name;
public Example(String name) {
this.name = name;
}
public String getNaam() {
return name;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Example) {
return ((Example) obj).name.equals(name);
} else {
return false;
}
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public int compareTo(Example o) {
return name.compareTo(o.getNaam());
}
@Override
public String toString() {
return name;
}
}
因为 class 知道自己(这是不言而喻的)所以你只需这样写:
注意:我省略了大部分操作。
如果您有一个使用 class 本身键入的属性,则使用自引用。一个简单的例子是 Employee
,它引用了一个 manager
,它本身就是一个 Employee
:
详细说明一下:如您所见,关联只是属性的另一种呈现。如果您使用未由属性表示的类型化参数,您将创建如下图所示的依赖项。
我目前正在制作一个包和 class 图。我有一个使用 compareTo 方法的 class。我的问题是当我建模时,我是否必须进行自我关联?如果是这样,自关联是依赖线还是普通线?
代码示例:
public class Example implements Comparable<Example> {
private String name;
public Example(String name) {
this.name = name;
}
public String getNaam() {
return name;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Example) {
return ((Example) obj).name.equals(name);
} else {
return false;
}
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public int compareTo(Example o) {
return name.compareTo(o.getNaam());
}
@Override
public String toString() {
return name;
}
}
因为 class 知道自己(这是不言而喻的)所以你只需这样写:
注意:我省略了大部分操作。
如果您有一个使用 class 本身键入的属性,则使用自引用。一个简单的例子是 Employee
,它引用了一个 manager
,它本身就是一个 Employee
:
详细说明一下:如您所见,关联只是属性的另一种呈现。如果您使用未由属性表示的类型化参数,您将创建如下图所示的依赖项。