首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果次要对象继续存在,那么为什么是委托而不是聚合,即使主要对象被销毁了。

如果次要对象继续存在,那么为什么是委托而不是聚合,即使主要对象被销毁了。
EN

Stack Overflow用户
提问于 2013-10-01 22:13:18
回答 2查看 415关注 0票数 2

我在这个委托的所以中找到了这个例子。我不明白为什么这不是聚合关系?即使销毁了Secretary对象,boss对象仍然存在。

代码语言:javascript
复制
public interface Worker() {
  public Result work();
}

public class Secretary() implements Worker {

   public Result work() {
     Result myResult = new Result();
     return myResult;
   }    
}

有人能解释一下为什么这是委托而不是聚合吗?

代码语言:javascript
复制
public class Boss() implements Worker {

   private Secretary secretary;

   public Result work() {
     return secretary.work();
   }   
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 22:17:18

如果是聚合,则聚合对象将具有容器的辅助生命周期。也就是说,如果容器消失了,所包含的对象也会消失。来自维基百科作文页面

组合是一种组合关系,其中复合对象对构件的配置负有完全的责任。组合和组件之间的关系是一个强的“有”关系,因为复合对象拥有组件的所有权。这意味着复合材料负责构件的创建和销毁。

票数 1
EN

Stack Overflow用户

发布于 2013-10-01 22:18:17

两者都是。

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

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19126891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档