Репозитории, картографы и как загружать объекты и их отношения - PullRequest
1 голос
/ 12 февраля 2010

Я использую C ++ (с библиотекой Qt), чтобы сделать простое приложение, смоделированное в домене. Я пишу свои собственные классы отображения O / R. Поскольку это приложение будет расти в будущем, я стараюсь поддерживать чистую кодовую базу с четко разделенными слоями.

Проблема, с которой я сталкиваюсь, заключается в том, когда и где загружать совокупные корни, на которые ссылается объект в другом модуле. (Я использую здесь слово «модуль» Эрика Эванса из книги DDD.)

В настоящее время у меня есть простой объект с именем Client, который находится в модуле ClientModule. В PermitModule у меня есть Permit объект. ( реальность более сложна, но для краткости я буду придерживаться этих двух объектов, поскольку они являются совокупными корнями ). Объект Permit имеет ссылку на Client как applicant. Это модель моего домена.

снизу вверх, у меня есть слой инфраструктуры , который содержит классы отображения O / R и конкретные реализации Repository объектов. Таким образом, у меня есть классы ClientMapper, ClientRepositoryDb, PermitMapper и PermitRepositoryDb.

Следующим является Уровень домена , который содержит модель домена (Client и Permit классы) плюс интерфейсы хранилища ClientRepository и PermitRepository.

Кроме того, у меня есть Application Layer , а затем Presentation Layer , но это не имеет значения в этом примере.

Мой вопрос : должны ли быть загружены отношения между Permit и Client в классе PermitMapper или в классе PermitRepository. Или есть другой способ сделать это?

Это касается не только загрузки объектов, но и их сохранения и удаления.

1 Ответ

0 голосов
/ 25 февраля 2010

Я придерживался подхода, согласно которому мои классы Mapper загружаются полностью.

Я не Java-разработчик, но мне интересно, как это делает Hibernate (и другие)?

...