Модуль MVP, ссылающийся на другие подмодули MVP в Android - PullRequest
0 голосов
/ 03 декабря 2018

Наша команда работает над рефакторингом, в котором один из членов моей команды рефакторинг компонента "XFormComponent" с использованием MVP

, поэтому XFormComponent теперь имеет

  • XFormFragment реализует XFormComponent.View
  • XFormPresentor реализует XFormComponent.Presentor
  • XFormModel

Теперь мне нужно создать еще один MVP - «AllFormsComponent», этот компонент отображает все компоненты форм, включая «XFormComponent»,«YFormComponent» и т. Д. Как список фрагментов.

Поэтому у меня будет

  • AllFormsComponentFragment, реализующий AllFormsComponent.View
  • AllFormsComponentPresentor, реализующий AllFormsComponent.Presentor * 1020AllFormsComponentModel

Теперь мой вопрос: кто "AllFormsComponentFragment" или "AllFormsComponentPresentor" будет нести ответственность за создание подкомпонентов subMVP, т.е. XFormFragment?

Мои мысли

    // The V of MVP
public class AllFormsComponentFragment implements AllFormsComponent.Views extends Fragment {

  @Inject AllFormsComponent.Presentor myPresentor = inject();

  private AllFormComponentModel mAllFormComponentModel;

  public static AllFormsComponentFragment newFragmennt(AllFormComponentModel allFormComponentModel) {
    // make fragment with model
  }


  List<FormModel> models = myPresentor.getListofFormModels(mAllFormComponentModel);

  for(FormModel model : models ) {
    // create the FormCompoent (Views)  Fragments, and give to fragment manager.These individual component will create their own presentor 
  }


}


// The P of MVP
 class AllFormsComponentPresentor implements AllFormsComponent.Presentor {

  @Override
  public List<FormModel> getListofFormModels(AllFormComponentModel model) {
    // return the list of models 
  }
}
public interface AllFormsComponent {

  interface View {
    // view related methods

  }

  interface Presentor {

    // gets the list of models for the component MVP's
    List<FormModel> getListofFormModels(AllFormComponentModel model);
  }

}

Мои вопросы

- Этот подход звучит обоснованно.Я новичок в использовании MVP, поэтому отзывы и предложения приветствуются.

-Я все еще немного сбит с толку из-за общения.Например: если модель AllFormComponentModel изменяется, все фрагменты компонентов должны получать обновления - как это сообщение должно быть создано.PubSub Archi?или AllFormComponentFragment просто отправляет обновления в нисходящем направлении.Как насчет обработки вращения.дочерние фрагменты будут созданы перед родительским фрагментом при повороте, как эти дескрипторы в коммуникации MVP.

  • Эти вложенные фрагменты заставляют меня думать, делать фрагменты компонента - должны быть фрагментом или мы можемизбегать изящно?
...