Чистая архитектура на 2 фрагмента, которые похожи по функциям с MVVM?

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

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

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

2 ответа

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

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

Фрагменты <-> ViewModel <-> Repo / Model

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

UserProfileUpdateFragment -> UserProfileFragment UserProfileRegisterFragment -> UserProfileFragment

или

UserProfileUpdateVM -> UserProfileVM UserProfileRegisterVM -> UserProfileVM

Другие вопросы по тегам