Итак, в типичной модели, где у вас есть родитель, у которого может быть много детей, и ребенок, у которого может быть только один родитель, как вы управляете добавлением детей. Я использовал этот подход;
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 в родительский класс и назначить его ответственным за добавление дочерних элементов - теперь проблема состоит в том, что есть 2 способа добавить дочерний элемент через свойство Children и метод. Так это лучшее решение?
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;
}
}
Существуют ли какие-либо руководства для лучших практик по этому вопросу и чем вы занимаетесь?