2016-10-14 9 views
0

Должен ли я добавить компонент владельца на все сущности, у которых есть родитель? если да, то каков правильный термин для этого компонента. В настоящее время я использую AttachmentComponent, которые состоят из владельца Entity и используют его, как в приведенном ниже коде.Должен ли я добавить компонент владельца для каждого объекта с родительским?

AttachmentComponent ... 
ItemComponent ... 

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

ответ

0

Если ваши объекты могут быть иерархическими по своей природе, зачем вводить компонент для представления родительского объекта, а вместо этого представлять его как атрибут самой сущности?

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 со всеми соответствующими детьми должны вы должны пройти по иерархии сущностей из сверху вниз, а не снизу вверх.