Android MVVM навигатор - какой лучший способ открыть фрагмент из навигатора?
Я довольно новичок в архитектуре MVVM, мне нравится следовать идее навигаторов, используемых здесь, проблема здесь в том, что навигатор используется для взаимодействия действий, BaseNavigator выглядит так, что позволяет легко не импортировать класс Android:
public interface BaseNavigator {
void finishActivity();
void finishActivityWithResult(int resultCode);
void startActivityForResult(Class cls, int requestCode);
void startActivityForResultWithExtra(Class cls, int requestCode, String extraKey, String extraValue);
}
Если я хочу открыть фрагмент в тех случаях, когда мне нужно открыть фрагмент из ViewModel, и я хочу избежать использования Fragment
класс в любом из параметров методов BaseNavigator, чтобы сделать его тестируемым, как мне это сделать? В настоящее время я думаю, что BaseNavigator должен иметь такие методы, как openFragmentA()
, openFragmentB()
и т.д.. Имеет ли этот подход смысл? Я просто думаю, что количество фрагментов может увеличиться и стать слишком много позже.
Я где-то читал, что навигация непосредственно из Fragment/Activity не полностью подчиняется правилу android MVVM, поэтому я хочу не открывать View из другого View.