Как стать автором
Обновить
3
0
Виталий Вивчар @vivchar

Lead Android developer

Отправить сообщение

Почему FormatDateUseCase вы описываете как бизнес-логику? Бизне-слогика описывает общую суть действия пользователя и получаемого результата, она не говорит как именно пользователь это видит, как именно он выполнил действие. Эта визуализация лежит на плечах дизайнера, он может кнопочку нарисовать, а может и свайпом чтобы пользователь выполнял какое-то действие. Так же и с форматом даты - это то как дизайнер видит отображение модели(DateTime) из предметной области и только. И это не должно менять бизнеслогику. Этот FormatDateUseCase должен лежать в UI слое и называться соответсвенно, например mapper/formatter

При этом даже написав 1000 методов для удобства, все равно не покроете все возможные случаи байндинга ячейки.

как раз для оставшихся случаев можно использовать, конструкцию приведенную вами выше.

Получается, сломали стандартный ViewHolder

не сломал, при желании можно использовать ViewRenderer, из предыдущей статьи. В нем можно использовать стандартный ViewHolder.

Есть, кстати, либа, которая работает примерно по такому принципу

Да, спасибо, только там возможности RecyclerView урезаны, здесь же все доступно — DiffUtil, Payload и т д
написать код для удобства — это разве проблема?) тем более это будет скрыто за библиотекой, не конечному же пользователю это писать.
Если вы переживаете за «уродство», то это только лишь пример для статьи, для лучшего понимания
DiffUtil работает с конкретной реализацией YourModelCallbak, а в адаптере мы работаем только с интерфейсом — ItemModel, конечно это можно сделать через интерфейс, но тогда все обязаны будут работать так — это ограничивает реализацию. В данном случае выбор остается за разработчиком, как оповещать адаптер о изменениях.
DiffUtil можно использовать извне адаптера.
можно, но зачем? к примеру: мы меняем массив в презентере и хотим вызвать не notifyDataSetChanged(), a notifyItemRangeInserted()
Очень конструктивно. Да, мы так пишем, это утвержденный кодестайл внутри рабочей группы.

Информация

В рейтинге
Не участвует
Откуда
Томск, Томская обл., Россия
Дата рождения
Зарегистрирован
Активность