В моей доменной модели у меня есть совокупный корень клиента. Мое бизнес-правило: -> я не могу добавить нового клиента с тем же именем, фамилией и адресом электронной почты. Где лучше всего провести такую проверку?
Во-первых, с моей точки зрения, совершенно неправильно помещать такого рода проверки в мою совокупность клиентов. Во-вторых, также кажется неестественным добавлять эту проверку в мой CustomerRepository, поскольку я хочу рассматривать их так же просто в коллекциях памяти, в основном с одинаковой логикой для всех моих агрегатов. В-третьих, я также не собираюсь добавлять эту проверку в мою команду CreateCustomer-Command, потому что тогда эта важная проверка находится за пределами моей модели предметной области.
Итак, последний вариант, который я вижу, — это создать класс CustomerService и разместить здесь такую проверку.
У вас есть другие рекомендации? Я уже прочитал много других сообщений, но они не дают четкого ответа... Спасибо!!