#android #design-patterns #android-recyclerview #view #mvp
#Android #дизайн-шаблоны #android-recyclerview #Вид #mvp
Вопрос:
У меня есть приложение MVP с двумя вложенными представлениями переработчика. Владельцы представления теперь отвечают за обработку изменений представления, например, изменений видимости. Но у меня также есть логика и данные, смешанные внутри моего view holder, как я могу это заказать?
Я начинаю писать контракт для каждого продукта с представлениями и действиями. Каждый просмотр вторсырья должен иметь свой собственный интерфейс просмотра и презентатор? Учитывая, что ViewHolder имеет контроль над itemView
, он должен расширять интерфейс просмотра?
Ответ №1:
Вы можете повторно использовать уже имеющийся у вас презентатор, расширить текущий контракт просмотра с помощью необходимых вам методов. Предпочитайте меньшие интерфейсы, в вашем случае, другой интерфейс просмотра для ваших держателей просмотра адаптера и другой интерфейс для вашего фрагмента / действия.
Вы можете выделить специальную функцию в своем презентаторе, которая будет привязывать пассивный просмотр в адаптере, например:
presenter.bindProductViewHolder(viewHolder, position....)
Где viewHolder
реализован интерфейс меньшего размера, предложенный выше.
Комментарии:
1. Итак, вы бы предложили ViewHolder сохранить ссылку на моего текущего докладчика?
2. @AgustinMagne Нет. Адаптер должен содержать ссылку на докладчика.