2

我有以下 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{
}

我唯一的问题是,如果我有第一个图表,第二个图表如何,在我的实现中,字典的方向并不清楚。

4

1 回答 1

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有(n)个引用时使用DicEntry,但大小未知,它在Dictionary有点抽象定义时很有用。

第4个。one(Aggregation) 用于当Dictionary是一个容器DicEntryDictionary对象终结(kill)时,托管DicEntry对象将继续它们的生命(保持持久)

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

最后一个就像第四个。一个有所不同,这是当Dictionary最终确定时,这将导致最终确定托管对象DicEntry

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

于 2013-10-26T12:47:23.833 回答