Generi c BaseFragment архитектура с параметрами ограниченного типа для работы с ViewModel - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь придумать архитектуру для моего BaseFragment. Вот что я сделал до сих пор:

public abstract class BaseFragment<V extends BaseViewModel> extends Fragment {   

       private ViewModel viewModel;

       onAttach(Context context) {
         super.onAttach(context)
         viewModel = (T) ViewModelProviders.of(getActivity() , new BaseViewModel.Factory(getActivity())).get(getViewModelClass());
         // viewModel.registerView(getViewImpl());
       }
}

и когда я создаю любой новый фрагмент, я делаю так:

public class SomeFragment extends BaseFragment<SomeViewModel> {

   @Override
   public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   }

}

Все хорошо, но что если я захочу создать Frgament, где мне не нужен ViewModel? Должен ли я удалить аргументы ограниченного типа из BaseFragment и зарегистрировать ViewModels в их соответствующем фрагменте? Если так, то в чем заключается точка, имеющая аргументы ограниченного типа в BaseFragment, это недостаточно детально.

...