Чистая архитектура для 2 фрагментов, которые похожи по функциям с MVVM? - PullRequest
0 голосов
/ 05 марта 2020

Я работаю над приложением android в Kotlin, которое имеет профили пользователей, и я стараюсь изо всех сил, чтобы код был максимально чистым, используя MVVM. Работая над частью, отвечающей за обновление профиля пользователя, я заметил, что модель (POJO), viewmodel и сам фрагмент на 90% похожи на те, которые отвечают за регистрацию пользователя. У меня вопрос: какой дизайн выбрать, и почему:

  1. разделяют 2 действия, соблюдая принцип единой ответственности, но имеют много повторяющихся кодов
  2. , объединяющих их в один действие (одна viewmodel, модель и фрагмент), с некоторыми дополнительными, если здесь и там

Или есть другой способ? Может с интерфейсами? Наследство? Как это реализовать?

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Используйте наследование, чтобы сохранить общий код в basefragmet / viewmodel. Итак, у вас есть:

UserProfileUpdateFragment -> UserProfileFragment UserProfileRegisterFragment -> UserProfileFragment

или

UserProfileUpdateVM -> UserProfileVM UserProfileRerofisterM --VMM ->

0 голосов
/ 05 марта 2020

MVVM имеет три сильные стороны для четкого кодирования. ПРОСМОТР - МОДЕЛЬ - ViewModel

  1. Ваш фрагмент будет ПРОСМОТР для отображения профилей и принятия действий от пользователя
  2. ViewModel будет для расчета или манипулирование данными профилей
  3. Модель / Репо для генерации / получения данных профилей с или на сервер / хранилище

Фрагменты <-> ViewModel <-> Репо / Модель

...