我应该在每个拥有父级的实体上添加一个所有者组件吗?

Posted

技术标签:

【中文标题】我应该在每个拥有父级的实体上添加一个所有者组件吗?【英文标题】:Should I add a owner component on every entity that has parent? 【发布时间】:2017-02-24 11:50:59 【问题描述】:

如果是,该组件的正确术语是什么。目前我正在使用由所有者Entity 组成的AttachmentComponent,并像下面的代码一样使用它。

AttachmentComponent ...
ItemComponent ...

entity.add(attachment);
entity.add(item);

【问题讨论】:

【参考方案1】:

如果您的实体本质上可以是分层的,为什么要引入一个组件来表示父实体,而是将其表示为实体本身的属性?

public class Entity 
  private Set<Component> components;
  private Entity owner;

  public final boolean hasOwner() 
    return owner != null;
  

  public void setOwner(Entity owner) 
    this.owner = owner;
  

如果您需要自上而下而不是自下而上遍历实体层次结构,您还可以在每个 Entity 及其所有相关子项上维护一个列表。

【讨论】:

以上是关于我应该在每个拥有父级的实体上添加一个所有者组件吗?的主要内容,如果未能解决你的问题,请参考以下文章

所有实体框架方法都应该使用异步吗? [关闭]

iPhone核心数据得到孙子

来自父级的 TextField 默认值未在子级上呈现

在 android 设备上渲染 webview 与来自同一个父级的先前兄弟级重叠

将元素从一个父级移动到另一个父级的反应动画

swift Core Data谓词过滤给定父级的所有子数据