私はWindowsフォームでMVPパターンを実装しています。これをより複雑なアーキテクチャに合わせようとしている現在の実装について質問があります。 今私はプロパティを持つ完全な無関心ビュー、コンストラクタでビューを注入するプレゼンタ、およびプレゼンタのインスタンスを持つビューを持っています。からプレゼンターにMVPフローの質問
- コール方法:これは、私は2つのタスクを達成することができます。このようにプレゼンター
public class MyPresenter { private IMyView view; private MyModel model; // public MyPresenter(IMyView view) { // injection this.view = view; } }
ある
public class MyView : IMyView { public MyView() { var presenter = new MyPresenter(this); presenter.Init(); } }
ビュー:これはコードですビュー
-
var view = ioc.Resolve<IMyView>(); var presenter = ioc.Resolve<MyPresenter>(); //view injected NavigationService.Show(presenter.View);
これまでのところは良い:私は簡単にこの1のようなコードを書くことができるように、私はIoCコンテナを使用していますすべてのものを編成するには
:プレゼンター からの眺めは今、私は2つの質問があります。
最初の質問:ジョブが完了したら、プレゼンターからモデルをどのように取り戻すことができますか?ビューで使用されるプレゼンターは、IoCコンテナから使用しているプレゼンターと同じではありません。ビューは単独で新しいプレゼンターをインスタンス化します。プレゼンターによって公開されるモデルは、ビューでインスタンス化されたモデルと同じではありません。
第2の質問:私はこのMVPトライアドに既存のモデルをどのように渡すことができますか?たとえば、このコードをのために動作させるにはどうすればいいですか?詳細ビューモデルはリポジトリからのものですか?よりクリーンなアプローチを持っている
私はこの種の解決策については考えていませんでした。 – Raffaeu