Я разрабатываю мобильное клиентское приложение с чистой архитектурой + 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."
У меня вопрос: в какой момент в чистой архитектуре событие и местоположение объединяются, чтобы данные события и данные местоположения были объединены в одну структуру?
Одним из вариантов может быть вариант использования, который выбирает событие, затем выбирает местоположение этого события, а затем объединяет их данные в структуру ответа для докладчика. Затем докладчик переводит эту структуру ответа в модель представления (например, форматирует дату и время начала / окончания в строку временного диапазона).
Другой вариант - для докладчика выполнить два варианта использования: один для получения события, а другой - для получения местоположения события, а затем объединить и преобразовать эти данные в модель представления.