Например, у меня есть EditProjectFragment
, который содержит несколько элементов:Presenter/View/ViewState relationshipts
TextView
(название проекта)ColorPicker
(цвет проекта)Spinner
(тип проекта)
Посмотрим:
- Название проекта будет восстановлено самим TextView
- Кому должен быть сохранен цвет проекта?
- Кто должен хранить значение счетчика?
Обязанности: ViewState
. Например, когда пользователь выбирает цвет, View
звонит presenter.onProjectColorPicked(color)
. Затем Presenter
позвонит view.setProjectColor(color)
. Или View
должен обновить ViewState
напрямую, без звонка Presenter
, если он не нужен?
Другой пример. Пользователь добавляет фотографии в EditNoteFragment. Пользователь выбирает фотографию (presenter.pickPhoto()
) ->presenter.addPhoto(photo)
позвонил и уведомил View
, чтобы добавить фотографию в ViewState
& показать это. Должно ли View
обновить Note
объект сам по себе? Должно ли это быть сделано Презентером? В первом случае это означает, что ViewState
предоставит такие методы, как getNote()/setNote(note)
, которые будут использоваться View. Должен ли я дублировать ссылку на замещение посредством обновления в методе View.setNote(note)
? Второй случай означает, что я, вероятно, должен хранить Note
объект в Presenter
и просто обновлять View
без пропуска Note
в нем. Но это выглядит неправильно.
Другими словами:, что View
должны обойтись без помощи Presenter
«s (добавить фото к Note
объекта?) И какие вещи с ним (кнопка щелчки и т.д.)?
> не совсем то, для чего предназначен ViewState; Итак, какие данные я должен хранить в 'ViewState'? На самом деле, я могу даже сохранить 'List' и текущий выбранный элемент для 'Spinner' через' onSaveInstanceState (Bundle) '. –
Alexandr