Александр
Мне удобне, когда вся логика связаная с вьюхой RV находится в одном месте.
Прокидывать листенер, пусть и одинаковый, суть байндниг.
Не понимаю как ты сюда SRP притянул. onCreate создаёт холдер? Создаёт. У него роль такая, этот метод вызывается когда RV нужен новый холдер. Цель метода - холдер вернуть, всё что ты в него напихуёнишь по ходу - твоя инициатива.
Делает ли этот метод что - то ещё, кроме как возвращает холдер? В твоём случае да, в моём - нет. Что там у нас по SRP?
onBindViewHolder биндит холдер? Биндит. Этот метод вызывается, когда RV необходимо актуализировать в ячейке контент. Является ли навешивание листенера, пусть и такого же, актуализацией? Является. Нарушается ли тут SRP? Нет.
Вот на "удобнее" можно было бы заканчивать дискуссию, потому что тут трудно поспорить, но дальше ты всё-таки приходишь к каноничности, если я правильно понял.
С позиции SRP прокидывание одинакого листенера относится скорее к onCreateVH, а не к onBind.
Ты пишешь про актуализацию. Как ты актуализируешь листенер в onBind? Он реально актуализируется? Если я его вешал в onCreateVH или, что лучше по-мне, в onViewAttached, он у меня не актуален, да ну?
> Прокидывать листенер, пусть и одинаковый, суть байнднига.
Неа
> Цель метода - холдер вернуть
Именно так, поэтому пробросить листенер лучше, когда ты создаёшь холдер. Поскольку листенер у тебя не изменяется. Соответсвенно, каждый раз пробрасывать один и тот же холдера в onBindVH, который вызывается достаточно часто, стоит отметить, не есть хорошо.
> Не понимаю как ты сюда SRP притянул.
SRP, вообще, почти всюду есть. (ну как я понимаю)