Много обсуждений, например this и this, используйте RICH DOMAIN MODEL
и есть 2 веских довода в пользу аменика, например 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);