Je voulais utiliser une approche de type "présentateur d'abord" (le présentateur s'attache à sa vue et à son modèle dans le constructeur en utilisant l'injection de dépendances via l'appel au constructeur).
Mon formulaire est un MainForm unique contenant deux contrôles utilisateur qui ont chacun leurs propres présentateurs, mais partagent le modèle, donc je crée tous les présentateurs dans Main, en passant dans le contrôle utilisateur pertinent au présentateur en ayant une propriété qui expose ces contrôles de FormMain, et en passant dans une seule instance du modèle à tous les présentateurs.
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
IDocumotiveCaptureView view = new DocumotiveCaptureView(); //this is the MainForm
IDocumentModel model = new DocumentModel(); //single model
IDocumotiveCapturePresenter Presenter = new DocumotiveCapturePresenter(view, model); //MainForm's presenter
IControlsPresenter ControlsPresenter = new ControlsPresenter(view.ControlsView, model); //ControlsPresenter - attached to the user control via view.ControlsView
IDocumentPresenter DocumentPresenter = new DocumentPresenter(view.DocumentView, model);//DocumentPresenter - attached to the user control via view.DocumentView)
Application.Run((Form)view);
}
Quelqu'un peut-il voir quelque chose d'intrinsèquement mauvais ou mauvais dans cette approche ? Je sais que cela peut être subjectif, mais je suis très novice en matière de MVP et j'aimerais avoir un retour d'information.