我有一個父母和孩子班。如果沒有父母,孩子是沒有意義的,我希望孩子能夠參考父母。域模型 - 將孩子添加到父母的正確方法是什麼?
這是一種很好的方式來設置對父級的引用,並將子級添加到父級的集合中?還是有更好的方法來做到這一點?
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);
}
}
似乎也許這是一個壞主意,將孩子添加到孩子的父母的集合,但也許是這樣。建立這些關係的最佳方式是什麼?
爲什麼你需要'訂單項'關係?讓應用程序服務調用'order.addItem(new Item(...))'或甚至'order.addItem(itemName)'都是非常好的。我認爲我更喜歡後者,因爲它可以讓客戶不知道哪個具體的類能夠實現。 – plalx