我在这个委托的所以中找到了这个例子。我不明白为什么这不是聚合关系?即使销毁了Secretary对象,boss对象仍然存在。
public interface Worker() {
public Result work();
}
public class Secretary() implements Worker {
public Result work() {
Result myResult = new Result();
return myResult;
}
}有人能解释一下为什么这是委托而不是聚合吗?
public class Boss() implements Worker {
private Secretary secretary;
public Result work() {
return secretary.work();
}
}发布于 2013-10-01 22:17:18
如果是聚合,则聚合对象将具有容器的辅助生命周期。也就是说,如果容器消失了,所包含的对象也会消失。来自维基百科作文页面
组合是一种组合关系,其中复合对象对构件的配置负有完全的责任。组合和组件之间的关系是一个强的“有”关系,因为复合对象拥有组件的所有权。这意味着复合材料负责构件的创建和销毁。
发布于 2013-10-01 22:18:17
两者都是。
Boss由(集合)秘书组成,并将工作()委托给秘书。
如果Boss是最后一次提到局长,那么它就有资格获得GC。但所提供的代码并没有涵盖这一点。
https://stackoverflow.com/questions/19126891
复制相似问题