我想知道在MVP模式中调用ShowDialog()的位置,Presenter通常定义为:
public Presenter(IView view, IModel model)
{
this.View = view;
this.View.Presenter = this;
this.Model = model;
}
我想通过调用ShowDialog()来显示View Modelly,那么我应该在哪里调用ShowDialog()?
public void Foo()
{
var view = New View();
view.ShowDialog();
var presenter = new Presenter(view, model);
}
但是如果我在创建演示者之前调用ShowDialog()
,则.ShowDialog()
将不会在视图关闭之前返回,
然后我必须在Presenter
中调用它,但我觉得在演示者中调用ShowDialog()
是反模式的,
那么,什么是更好的解决方案,还是可以在演示者中调用ShowDialog()?
答案 0 :(得分:2)
为什么不
var presenter = new Presenter(view, model);
view.ShowDialog();
不,我不认为在Presenter中调用ShowDialog是一种反模式