Почему FormatDateUseCase вы описываете как бизнес-логику? Бизне-слогика описывает общую суть действия пользователя и получаемого результата, она не говорит как именно пользователь это видит, как именно он выполнил действие. Эта визуализация лежит на плечах дизайнера, он может кнопочку нарисовать, а может и свайпом чтобы пользователь выполнял какое-то действие. Так же и с форматом даты - это то как дизайнер видит отображение модели(DateTime) из предметной области и только. И это не должно менять бизнеслогику. Этот FormatDateUseCase должен лежать в UI слое и называться соответсвенно, например mapper/formatter
написать код для удобства — это разве проблема?) тем более это будет скрыто за библиотекой, не конечному же пользователю это писать.
Если вы переживаете за «уродство», то это только лишь пример для статьи, для лучшего понимания
DiffUtil работает с конкретной реализацией YourModelCallbak, а в адаптере мы работаем только с интерфейсом — ItemModel, конечно это можно сделать через интерфейс, но тогда все обязаны будут работать так — это ограничивает реализацию. В данном случае выбор остается за разработчиком, как оповещать адаптер о изменениях. DiffUtil можно использовать извне адаптера.
Почему FormatDateUseCase вы описываете как бизнес-логику? Бизне-слогика описывает общую суть действия пользователя и получаемого результата, она не говорит как именно пользователь это видит, как именно он выполнил действие. Эта визуализация лежит на плечах дизайнера, он может кнопочку нарисовать, а может и свайпом чтобы пользователь выполнял какое-то действие. Так же и с форматом даты - это то как дизайнер видит отображение модели(DateTime) из предметной области и только. И это не должно менять бизнеслогику. Этот FormatDateUseCase должен лежать в UI слое и называться соответсвенно, например mapper/formatter
как раз для оставшихся случаев можно использовать, конструкцию приведенную вами выше.
не сломал, при желании можно использовать ViewRenderer, из предыдущей статьи. В нем можно использовать стандартный ViewHolder.
Да, спасибо, только там возможности RecyclerView урезаны, здесь же все доступно — DiffUtil, Payload и т д
Если вы переживаете за «уродство», то это только лишь пример для статьи, для лучшего понимания
DiffUtil можно использовать извне адаптера.