Где объединяются связанные данные в чистой архитектуре?

Я разрабатываю мобильное клиентское приложение с чистой архитектурой + MVP, которое в основном отображает данные из API. Скажем, у меня есть две сущности, событие и местоположение, и я хочу отобразить список событий в моем приложении. Структуры данных, стоящие за этими двумя объектами, выглядят так:

Event
+ id: Int
+ title: String
+ description: String
+ start: LocalDateTime
+ end: LocalDateTime
+ locationId: Int

Location
+ id: Int
+ address: String

- и модель представления, которую мой докладчик толкает к представлению, выглядит так

EventViewModel
+ title: String // e.g. "Birthday Party"
+ timeRange: String // e.g. "June 11, 7pm – 10pm"
+ address: String // e.g. "123 Fake St."

У меня вопрос: в какой момент в чистой архитектуре событие и местоположение объединяются, чтобы данные события и данные местоположения были объединены в одну структуру?

Одним из вариантов может быть вариант использования, который выбирает событие, затем выбирает местоположение этого события, а затем объединяет их данные в структуру ответа для докладчика. Затем докладчик переводит эту структуру ответа в модель представления (например, форматирует дату и время начала / окончания в строку временного диапазона).

Другой вариант - для докладчика выполнить два варианта использования: один для получения события, а другой - для получения местоположения события, а затем объединить и преобразовать эти данные в модель представления.


person M. Palsich    schedule 11.06.2020    source источник


Ответы (1)


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

При этом вам следует выбрать свой первый вариант.

person plainionist    schedule 12.08.2020