Winforms 您将如何与“客户”合作;MDI ness“;在希望使用MVP模式的应用程序中?

Winforms 您将如何与“客户”合作;MDI ness“;在希望使用MVP模式的应用程序中?,winforms,mvp,mdi,Winforms,Mvp,Mdi,情况:MainForm(分配给MainPresenter)已启动并正在运行。用户单击ShowFoo按钮-一个事件被传递给MainPresenter,MainPresenter将创建新的FooPresenter和FooView。我现在该怎么办?应在何处创建演示者,应在何处创建视图,最重要的是,应在何处设置MDIParent属性?(太胖了,我觉得应该在主流观点下这样做 注意:我使用的是一个依赖性框架,尽管这与问题无关。理想情况下,我希望IView独立于Form类。我处理它的方式是在MainPrese

情况:MainForm(分配给MainPresenter)已启动并正在运行。用户单击ShowFoo按钮-一个事件被传递给MainPresenter,MainPresenter将创建新的FooPresenter和FooView。我现在该怎么办?应在何处创建演示者,应在何处创建视图,最重要的是,应在何处设置MDIParent属性?(太胖了,我觉得应该在主流观点下这样做


注意:我使用的是一个依赖性框架,尽管这与问题无关。理想情况下,我希望IView独立于Form类。

我处理它的方式是在MainPresenter接口之外使用一个函数,允许我创建FooPresenter(以及Foo2Presenter,等等)。MainPresenter中包含正确设置MDI父级的子窗体所需的所有信息。因此,将其放在此处是有意义的

另一种方法是使用AppPresenter类,该类将MainPresenter和FooPresenter作为属性或函数。在这里,AppPresenter持有presenter类,并负责将表单绑定在一起以获得适当的MDI应用程序。这种方法的含义是应用程序是主应用程序/带有一堆子窗体的父窗体不会反映在界面的设计中

在我看来,这两种方法之间的差异是最小的。它们都可以很容易地适应不同风格的UI。因此,继续这样做对您和您的应用程序更有意义