#кейс
Вопрос:
Есть RecyclerView с различными разнообразными ViewHolder. В одном item списка может быть семь EditText, в другом - другие компоненты. У каждого item своя логика валидации и прочее. Возникает риск распухания ViewHolderов и намешивания в них бизнес-логики.
Ответ:
Советуем посмотреть в сторону решения, описанного в
http://hannesdorfmann.com/android/adapter-delegates.
Там вводится новая сущность - делегат. Делегат позволяет разгрузить ваши адаптеры и вьюхолдеры, а также сделать их максимально переиспользуемыми, если списков в приложении много.
В делегаты вы можете инжектить Презентеры, через которые провайдите действия пользователя.
Однако бывают случаи, когда один item переиспользуется много где, и этот item отвечает, например, за "like". Инжектить Презентер бывает не очень удобно, так как тогда возникает дублирование кода и протягивание лишних зависимостей, чтобы в конце концов выполнить нужный юз-кейс.
Поэтому можно заинжектить в данный делегат специальный Интерактор, который как раз и выполняет юз-кейс нажатия на like.