【发布时间】:2015-01-03 17:49:39
【问题描述】:
我有一个父类和子类。没有父级,子级就没有意义,我希望子级可以引用其父级。
这是在子级中设置对父级的引用以及将子级添加到父级集合中的好方法吗?或者有更好的方法吗?
public class Order
{
public Guid Id {get; private set;}
public Name Id {get; private set;}
IEnumberable<Item> Items {get; private set;}
public Order(Guid id, string name)
{
Id = id;
name = name;
Items = new List<Item>();
}
public void AddItem(Item item)
{
var items = Items.ToList();
items.Add(item);
Items = items;
}
}
public class Item
{
public Guid Id {get; private set;}
public Name Id {get; private set;}
public Order Order {get; private set;}
public Item(Guid id, string name, Order order)
{
Id = id;
name = name;
Order = order;
Order.AddItem(this);
}
}
似乎从孩子内部将孩子添加到父母的集合中可能是一个坏主意,但也许是这样。建立这些关系的最佳方式是什么?
【问题讨论】:
-
为什么需要
Item to Order关系?让应用程序服务调用order.addItem(new Item(...))甚至order.addItem(itemName)完全没问题。我认为我更喜欢后者,因为它使客户不必知道要实例化哪个具体类。
标签: domain-driven-design parent-child domain-model