J'implémente le modèle MVP avec Windows Form et j'ai une question sur l'implémentation actuelle car j'essaie de l'intégrer dans une architecture plus complexe. En ce moment j'ai une vue agnostique totale avec des propriétés, un présentateur qui injecte la vue dans le constructeur et la vue qui a une instance du présentateur. Voici le code: VoirMVP Flow question
public class MyView : IMyView
{
public MyView()
{
var presenter = new MyPresenter(this);
presenter.Init();
}
}
C'est le Présentateur
public class MyPresenter
{
private IMyView view;
private MyModel model;
//
public MyPresenter(IMyView view)
{
// injection
this.view = view;
}
}
De cette façon, je peux accomplir deux tâches:
- méthodes d'appel sur le présentateur de the View
- Intéragir avec le Voir de le présentateur Maintenant, j'ai deux questions:
Pour tout orchestrer j'utilise le conteneur IoC pour que je puisse facilement écrire du code comme celui-ci:
var view = ioc.Resolve<IMyView>(); var presenter = ioc.Resolve<MyPresenter>(); //view injected NavigationService.Show(presenter.View);
Jusqu'à présent, si bon.
Première question: comment puis-je récupérer le modèle à partir du Presenter lorsque le travail est terminé? Le présentateur utilisé par la vue n'est pas le même que celui que j'utilise depuis le conteneur IoC car la vue instancie un nouveau présentateur ... donc le modèle exposé par le présentateur n'est pas le même que celui utilisé par le présentateur instancié dans la vue
Deuxième question: comment je peux passer un modèle existant à cette triade MVP quand j'ai un? Par exemple, comment puis-je faire fonctionner ce code pour un Détails Voir où le modèle provient d'un référentiel?
Ok, je n'ai pas pensé à ce type de solution. – Raffaeu