我正在實現與Windows窗體的MVP模式,我有一個關於當前實現的問題,因爲我試圖將其應用到更復雜的體系結構中。 現在我有一個完全不可知的視圖與屬性,主持人注入視圖在構造函數和視圖有一個演示實例。這是代碼: 查看MVP流問題
public class MyView : IMyView
{
public MyView()
{
var presenter = new MyPresenter(this);
presenter.Init();
}
}
這是演示
public class MyPresenter
{
private IMyView view;
private MyModel model;
//
public MyPresenter(IMyView view)
{
// injection
this.view = view;
}
}
這樣,我可以完成兩項任務:從演示
- 呼叫方法查看
- 與查看從演示 現在,我有兩個問題:
要協調我使用IoC容器的一切,讓我可以輕鬆地寫出像這樣的代碼:
var view = ioc.Resolve<IMyView>(); var presenter = ioc.Resolve<MyPresenter>(); //view injected NavigationService.Show(presenter.View);
到目前爲止好。
第一個問題:如何在作業完成後從演示者處取回模型? View所使用的演示者與IoC容器中使用的演示者不同,因爲View本身實例化一個新的演示者...所以Presenter公開的模型與View中實例化的演示者所使用的模型並不相同,因爲該演示者在視圖
第二個問題:當我有一個模型時,如何將現有模型傳遞給此MVP三元組?例如,如何讓此代碼適用於詳細信息視圖其中模型來自存儲庫?
好的,我沒有想到這種類型的解決方案。 – Raffaeu 2010-12-02 14:14:20