Где правильно разместить доменную логику для обновления дочернего элемента совокупного корня? - PullRequest
1 голос
/ 24 января 2011

Рекомендуется ли обновлять дочерние элементы совокупного корня напрямую или только через его совокупный корень? Например, что является предпочтительным:

Order.UpdateOrderLineQuantity(orderLine, quantity);

или

Order.OrderLines[0].UpdateQuantity(quantity);

Любое руководство в этом отделе будет оценено.

1 Ответ

2 голосов
/ 24 января 2011

Совокупный корень - это объект, который инкапсулирует связанные дочерние объекты, поэтому вы должны использовать первый метод.

Точно так же, как вызывающим абонентам не должно быть важно, хранятся ли идентификаторы заказов в виде целых чисел или байтовых массивовони не должны заботиться или знать, использует ли он OrderLines или HideousLegacyObjects для хранения и обработки деталей заказа.

...