Как назвать классы, которые репозиторий использует для доступа к данным?

Я занимаюсь программированием много лет, недавно я пытался применить некоторые идеи из дизайна, управляемого предметной областью, но я все еще борюсь с выбором хороших имен для определенных частей системы.

Вот один пример;

У меня есть веб-служба WCF, которая возвращает объекты «Компьютер». Объект представляет собой совокупный корень, содержащий дочерние объекты.

Дочерние объекты загружаются из двух разных баз данных и из Active Directory.

Прямо сейчас у меня есть отдельные классы репозитория для каждой сущности «ComputerAssetRepository», «DeploymentRepository», «DirectoryRepository» и т. д., затем у меня есть «ComputerRepository», который вызывает каждый дочерний репозиторий и возвращает результат в совокупный корневой объект «Компьютер».

Вероятно, у меня должен быть только один «ComputerRepository», а другие классы отвечают только за доступ к данным из различных источников. Поскольку им нужны общие функции репозитория FindById/Add/Remove/Contains и т. д., я называю их репозиториями.

Есть ли лучшее название для этих классов?


person Andronicus    schedule 25.08.2009    source источник


Ответы (1)


Я думаю, что правильный ответ зависит от того, являются ли ComputerAsset, Deployment, Directory и другие подобные дочерние сущности глобально доступными агрегатами так же, как Computer.

В любом случае, я думаю, что они заслуживают своих собственных репозиториев, и я думаю, что сейчас они правильно названы. «Репозиторий» в смысле DDD просто относится к механизму обхода, с помощью которого вы работаете с существующими объектами (фабрики обрабатывают создание новых объектов). Но если они не предназначены для глобального доступа, просто сделайте эти репозитории внутренними для ComputerRepository.

person John Feminella    schedule 25.08.2009