Meine App hat eine Aktivität und zwei Fragmente. Die Aktivität wird nur als Fragmentcontainer verwendet. Eines der Fragmente zeigt Daten als Text. Das zweite Fragment zeigt dieselben Daten wie ein Diagramm. Diese Daten stammen von einer Remote-JSON-API. Wie in MVP müssen wir die gleiche Struktur für jede Ansicht replizieren (Modul, Modell, Presenter, Repository ...) Meine App fordert die Daten von der JSON-API für jedes Fragment, also zweimal. Wie kann ich eine effizientere Architektur haben, die es mir ermöglicht, den MVP zu respektieren?Android MVP mit zwei Fragmenten, die dieselben Daten teilen
Siehe unter dem Code für meine beiden Fragmente umgesetzt:
Modul
@Module
public class PollutionLevelsModule {
@Provides
public PollutionLevelsFragmentMVP.Presenter providePollutionLevelsFragmentPresenter(PollutionLevelsFragmentMVP.Model pollutionLevelsModel) {
return new PollutionLevelsPresenter(pollutionLevelsModel);
}
@Provides
public PollutionLevelsFragmentMVP.Model providePollutionLevelsFragmentModel(Repository repository) {
return new PollutionLevelsModel(repository);
}
@Singleton
@Provides
public Repository provideRepo(PollutionApiService pollutionApiService) {
return new PollutionLevelsRepository(pollutionApiService);
}
}
Repository
public class PollutionLevelsRepository implements Repository {
private PollutionApiService pollutionApiService;
public PollutionLevelsRepository(PollutionApiService pollutionApiService) {
this.pollutionApiService = pollutionApiService;
}
@Override
public Observable<Aqicn> getDataFromNetwork(String city, String authToken) {
Observable<Aqicn> aqicn = pollutionApiService.getPollutionObservable(city, authToken);
return aqicn;
}
}
http://stackoverflow.com/questions/34257883/mvp-for-activity-with-multiple-fragments?rq=1 – Manish