解决方法
您通常会将此封装在Aggregate对其合同公开的命令中.
例如,使用Order Aggregate,您可以使用从GUI获取的数据添加OrderLines.
// This is the Order Aggregate Root public class Order { private readonly int id; private readonly Customer customer; // Customer is another Aggregate private readonly IList<OrderLine> orderLines; private readonly IOrderLineFactory orderLineFactory; public Order(int id,Customer customer,IOrderLineFactory orderLineFactory) { this.id = id; this.customer = customer; this.orderLines = new List<OrderLine>(); this.orderLineFactory = orderLineFactory; } public void AddOrderLine(Item item,int quantity) { OrderLine orderLine = orderLineFactory.Create(this,item,quantity); orderLines.Add(orderLine); } }