我有以下 UML 类关联想要控制我是对还是错(这里不需要方法):
编号 1:
import java.util.*;
public class Dictionary {
private DictEntry[] entry;
ArrayList<DictEntry> book = new ArrayList<DictEntry>();
public Dictionary(){
entry = new DictEntry[3];
entry[0] = new DictEntry("Abc");
entry[1] = new DictEntry("Def");
entry[2] = new DictEntry("Ghi");
book.add(new DictEntry("Bla"));
book.add(new DictEntry("Blub"));
book.add(new DictEntry("Bli"));
}
}
public class DictEntry{
private String entry;
public DictEntry(String entry) {
this.entry = entry;
}
}
第一张图和第三张图是一样的!
我的问题是聚合和组合,如果我在这里,如果我不在这里,我可以添加什么?
聚合:
public class Dictionary {
private DictEntry entry;
}
public class DictEntry{
}
成分:
import java.util.*;
public class Dictionary {
private DictEntry[] entry;
}
DictEntry:
public class DictEntry{
}
我唯一的问题是,如果我有第一个图,第二个图如何,在我的实现中字典的方向不清楚。
最佳答案
你搞错了,1号。第一个关联是这样的
public class Dictionary {
private DictEntry d0,d1,d2;
}
public class DictEntry{}
第二个是这样的
private DictEntry d0,d1,d2;
}
public class DictEntry{
private Dictionary owner;
}
第三个。当 Dictionary
具有来自 DicEntry
类的 (n) 个引用,但大小未知时,使用一个,当 Dictionary
有点抽象时,它很有用定义。
第四个。当 Dictionary
是 DicEntry
的容器,但使用 Dictionary
对象终结(kill)时,使用 one(Aggregation),托管 DicEntry
对象将继续它们的生命(保持持久)
public class Dictionary {
private List<DicEntry> dics;//with Dictionary termination, dics instance would be kept alive
}
public class DictEntry{}
最后一个就像第四个一样。一个有区别的,这是当Dictionary
最终确定时,这将导致最终确定托管对象DicEntry
我确实无法用代码显示聚合/组合,但该图告诉开发人员托管对象在主机类终止后是否可用。
关于java - 在 Java 类中实现的 UML 类图关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606720/