「プレゼンターファースト」アプローチを使用したかった(プレゼンターは、コンストラクター呼び出しを介した依存性注入を使用して、コンストラクター内のビューとモデルに自分自身をアタッチします)。
私のフォームは、それぞれ独自のプレゼンターを持つ2つのユーザーコントロールを含む単一のMainFormですが、モデルを共有しているため、メインですべてのプレゼンターを作成し、FormMainからこれらのコントロールを公開するプロパティを使用して、関連するユーザーコントロールをプレゼンターに渡します。 、およびモデルの単一のインスタンスをすべてのプレゼンターに渡します。
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);
}
このアプローチで本質的に悪いまたは間違っているものを誰かが見ることができますか?これは主観的なものかもしれませんが、私はMVPに非常に慣れていないので、フィードバックをお願いします。