2009-02-05 3 views
0

Допустим, что у меня есть сущность Foo, и она содержит список других сущностей. Должен ли Бар иметь прямую ссылку на Foo? i.e ...Разработка домена - ссылка на объект в подклассе

public class Foo 
{ 
    public int Id {get; set;} 
    public IList<Bar> Bars {get; set;} 
} 

public class Bar 
{ 
    public int Id {get; set;} 
    public Foo parentFoo {get; set; //this will be set to an the Foo entity on creation 
} 

или я просто оставлю ссылку на Foo в классе Bar?

Я склоняюсь к тому, чтобы оставить эту ссылку, но задавался вопросом, какой правильный подход здесь?

ответ

3

Правильный подход заключается в том, чтобы задать вопрос: «Почему-то Bar должен ссылаться на Foo по какой-то причине?» Не просто размещайте ссылку там, если Бар не должен ничего с ней делать.

2

Это действительно зависит от примера. Если есть , то нужно знать, чтобы узнать родителя (например, для двунаправленной навигации - например, XmlNode и т. Д.), Тогда вам это понадобится. Это действительно работает только для одного родителя.

Если вам просто нужны уведомления об изменениях, события могут быть более универсальными - в частности, события допускают множественные «родители» без предубеждений.

Если ребенку не нужно заботиться о родителе, то не беспокойтесь.

+0

+1, Ударьте меня! – LukeH

1

Оставьте его, если только объект Bar не должен знать, к какому Foo принадлежит.

И если вы решите, что это необходимо, подумайте о том, как вы будете иметь дело с объектом Bar, который принадлежит более чем одному Foo (вполне возможно с описанной структурой классов).

1

Я отвечу на вопросы, которые говорят «сделайте это, если вам это нужно», но хотите предупредить, что соединение в обоих направлениях ведет к хрупкому коду. Внимательно изучите, нужна ли ссылка от Bar до Foo. Если этого вообще можно избежать, это должно быть.

Смежные вопросы