Реализация представления master-detail с использованием модели представления и разделения слоев

Итак, я прочитал об архитектуре VIPER и мне стало интересно, как бы вы реализовали комбинацию основных и подробных представлений, используя предлагаемое разделение уровней между представлением, моделью представления, презентатором и маршрутизацией контроллера представления?

Допустим, я хочу отобразить некоторые контакты. У меня есть ContactsListViewModel с его именем свойств, фотографией и, возможно, некоторым подробным текстом. Это известно ContactsListPresenter и ContactsListViewController.

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

Модель представления, известная модулю «Список», не содержит достаточно информации для подробного отображения (например, дополнительные примечания, список вызовов и т. д.).

В этом случае должна ли быть модель представления, которую можно использовать как для списка, так и для подробного представления? Будет ли это нарушением разделения ответственности?


person Sebastian Wramba    schedule 06.10.2014    source источник


Ответы (1)


Я так понимаю у вас 2 варианта -

  1. Передайте модель, включающую все данные, которые вам нужны, в контроллер представления списка контактов. При этом у вас будут все необходимые данные. - Лично я считаю, что в некоторых случаях это нормально, хотя и немного расточительно.
  2. Передайте в каркас подробного представления идентификатор контакта. Затем в загрузочной части контроллера представления загрузите через прентер, а затем интерактор полные данные контакта, а затем отобразите их.
person Asaf Shveki    schedule 20.01.2015
comment
Я совсем забыл, что задавал здесь этот вопрос. Но вы правы, это в основном два варианта, которые у вас есть. И то, и другое не идеально, но, похоже, другого пути нет. - person Sebastian Wramba; 20.01.2015