2

我在这个SO中找到了这个例子来进行委派。我不明白为什么这不是聚合关系?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();
   }   
}
4

2 回答 2

1

如果是聚合,那么聚合对象将具有容器的附属生命周期。即,如果容器消失,包含的对象也会消失。来自Wikipedia page for Composition

组合是一种组合,其中组合对象对组成部分的布置负有唯一责任。复合对象和组件之间的关系是一种强“具有”关系,因为复合对象拥有组件的所有权。这意味着复合材料负责组成部分的创建和销毁。

于 2013-10-01T22:17:18.760 回答
-1

两者兼而有之。

Boss 由(聚合)秘书组成,并将工作()委托给秘书。

如果 Boss 是最后一次提到秘书,那么它就有资格获得 GC。但所提供的代码并未涵盖这一点。

于 2013-10-01T22:18:17.063 回答