Итак, в типичной модели, где у вас есть родитель, у которого может быть много детей и ребенок, который может иметь только одного родителя, как вы управляете добавлением детей. Я использовал этот подход;
public class Parent
{
public Parent()
{
Children = new List<Child>();
}
public IList<Child> Children
{
get;
private set;
}
}
public class Child
{
public Parent Parent
{
get;
set;
}
}
var child = new Child();
var parent = new Parent();
parent.Children.Add(child);
child.Parent = parent;
Проблема в том, что всюду я хочу добавить нового ребенка, я должен помнить о том, чтобы добавить ссылку как на ребенка, так и на родителя, и на это немного боль. Я мог бы просто добавить метод AddChild к родительскому классу и сделать ответственным за добавление детей - проблема в том, что есть два способа добавить ребенка через свойство "Дети" и метод. Так это лучшее решение?
public class Parent
{
public Parent()
{
children = new List<Child>();
}
private IList<Child> children
{
get;
private set;
}
public IEnumerable<Child> Children
{
get
{
return children;
}
}
public void AddChild(Child child)
{
children.Add(child);
child.Parent = this;
}
}
Есть ли какие-либо рекомендации для лучших практик в этом и что вы делаете?