在Java类中实现的UML类图关联

时间:2013-10-26 12:30:19

标签: java associations uml diagram class-diagram

我有以下UML类关联想控制我是对还是错(这里不需要方法):

enter image description here

Nr 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 个答案:

答案 0 :(得分:2)

你错了,伙计,No1。第一个关联是这样的

public  class Dictionary {
private DictEntry d0,d1,d2;
}
public class DictEntry{}

第二个就像这样

private DictEntry d0,d1,d2;
}
public class DictEntry{
private Dictionary owner;
}

第3名。当Dictionary具有来自DicEntry类的(n)引用时使用一个,但是大小未知,当Dictionary有点抽象定义时,它很有用。

第四个。当DictionaryDicEntry的容器,但Dictionary对象终结(kill)时,使用一个(聚合),托管的DicEntry对象将继续其生命(保持持久)

public  class Dictionary {
private List<DicEntry> dics;//with Dictionary termination, dics instance would be kept alive
}
public class DictEntry{}

而最后一个就像第四个。一个有区别的,这是Dictionary最终确定后,这将导致最终确定托管对象DicEntry

我真的无法用代码显示聚合/组合,但该图告诉开发人员托管对象在主机类终止后是否可用。