J'essaie d'implémenter mon application avec le modèle MVP (Model-View-Presenter) dans Android mais je suis confronté à un problème. Je veux avoir un présentateur de base abstrait avec une propriété de classe de vue qui est d'un type générique. ViewInterface
mais lors de la création d'un vrai présentateur, j'aimerais que cette propriété soit du type RealPresenterView
et si possible sans avoir besoin de remplacer la même fonction dans tous les diffuseurs.
Comme je ne me suis probablement pas bien expliqué, voici un peu de code pour illustrer le cas, d'abord le présentateur de base :
abstract public class BasePresenter {
protected ViewInterface view;
protected ViewInterface getView() {
return view;
}
}
puis le vrai présentateur
public class RealPresenter {
protected RealPresenterView view;
// ...
view.methodOnlyExistingInRealPresenterView();
}
Je voulais pouvoir utiliser la vue dans RealPresenter comme RealPresenterView sans avoir à ajouter beaucoup de code dans la classe. Est-ce possible ?
J'ai lu des articles sur les modèles de classe mais je n'ai pas vu comment les mettre en œuvre dans ce cas sans ajouter des fonctions dans chaque présentateur.