Я пытаюсь сохранить уровень своей домена как можно более «чистым», не допуская постоянства или других проблем с инфраструктурой. Однако бывают случаи, когда моему домену необходимо использовать службы СУБД или другой внешней зависимости, и я не знаю, как с этим бороться.
Например, каждый объект домена в моем приложении реализует интерфейс IValidatable, который вызывается клиентами для получения списка нарушенных правил, препятствующих сохранению объекта. В некоторых случаях вышеупомянутая процедура проверки включает вызов класса DAO для проверки существования конкретной записи. Мы не используем ORM; вместо этого мы используем уровень сохраняемости, построенный с использованием шаблона объекта доступа к данным. Должен ли я просто создать класс службы / оболочки для этого доступа к базе данных и заставить мой объект домена сотрудничать с ним? Допустимо ли добавление такого уровня косвенного обращения или я все еще загрязняю свой объект домена?