很多讨论,比如this和this,都使用RICH DOMAIN MODEL
amenic有两个强有力的理由,例如 1 和 3:
现在假设我需要确保我需要验证产品是否存在于库存中,如果不存在则抛出异常。
所以有一个问题:如果我们不需要一个对象依赖于ISomeRepository
类似的服务,我们可以这样:
public void Order.AddOrderLine(IEnumerable<Product> products, Product product)
{
if(!prosucts.Contains(product))
throw new AddProductException
OrderLines.Add(new OrderLine(product));
}
并这样称呼它:
Order.AddOrderLine(ISomeRepository.GetAll(), product);