В прошлом я думал, что мои доменные объекты не должны содержать вызовов репозиториев в своем методе.Однако я столкнулся со следующей проблемой.Я знаю, что доменные объекты должны быть всегда в интегрированном состоянии.Например, если у вас есть правило, что Order не может существовать без строки заказа, вам нужно добавить orderLine в конструктор заказов и сделать коллекцию LineOrder доступной только для чтения.
В моем случае, если заказ переходит в состояние «Утверждено», мне нужно проверитьесли у Клиента достаточно денег для заказа и если приложение может сделать переводы для этого клиента, а затем связать перевод с заказом.Поэтому мой метод order.Approve требует вызова соответствующих методов репозиториев, чтобы проверить, можно ли утвердить заказ и получить необходимые свойства навигации (Order - Transfer Ассоциации).
Если я не выполняю эту проверку и присваивания в методе Approve и создаю метод Approve в классе OrderService (так как Approve может рассматриваться как процесс), то мой метод Approve может привести объект к неинтегрированному состоянию, если кто-то вызоветэто в другой части кода.
Итак, мои вопросы: 1. Если использование методов хранилища в доменных объектах неправильно, то как решить проблему целостности объекта выше?2. Если Подтвердить не является процессом, то каков процесс у клиента, образец заказа?:)