LobsterJoe
@LobsterJoe

Правильно ли построена архитектура (Aggregate — Repository — Service — Controller)?

Нужен совет по архитектуре приложения.
Есть сайт, к примеру, аггрегатор недвижимости. Для хранения сведений об объектах
я использую RealtyObject Aggregate, состоящий из RealtyObject Entity + RealtyImages Entity плюс какие-то ещё сущности. В этих сущностях лишь геттеры и сеттеры, больше ничего.

Всё, что касается операций чтения, сохранения свойств сущностей - лежит в RealtyObject Repository и RealtyImages Repository.

Действия с аггрегированным объектом RealtyObject Aggregate (вся бизнес-логика) соответственно размещаются в RealtyObject Service, с которым уже будет происходить взаимодействие из контроллера.

Хотелось бы знать, правильно ли я уловил концепцию построения подобных систем?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@galliard
Агрегат - это сущность, в состав которой входят другие сущности. Однако будучи агрегатом, он не перестает быть сущностью, и имеет все свойства сущности. Делать для агрегата отдельный объект не нужно.

RealtyObjectService'a быть не должно, сервисы должны именоваться бизнес-кейсами, а не типами сущностей/агрегатов, с которыми работают. Вообще один сервис может работать сразу с несколькими сущностями и агрегатами.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы