情况: MainForm(分配给 MainPresenter)已启动并正在运行。用户单击 ShowFoo 按钮 - 一个事件被传递给 MainPresenter,它反过来创建新的 FooPresenter 和 FooView。我现在应该如何进行?应该在哪里创建演示者,应该在哪里创建视图,最重要的是,应该在哪里设置 MDIParent 属性?(太胖了,我觉得应该在主视图中完成。
注意:我使用的是依赖框架,尽管这与问题无关。理想情况下,我希望 IView 独立于 Form 类。
我处理它的方式有一个 MainPresenter 接口的功能,它允许我创建一个 FooPresenter(以及一个 Foo2Presenter 等)。MainPresenter 包含其中的所有信息,以正确设置 MDI 父级的子窗体。因此,为什么将它放在那里是有意义的。
另一种方法是拥有一个 AppPresenters 类,该类具有 MainPresenter 和 FooPresenter 作为属性或函数。在这里,AppPresenters 持有 Presenter 类,并负责将表单绑定在一起以拥有适当的 MDI 应用程序。这种方法的含义是应用程序是具有一堆子表单的主/父表单这一事实不会反映在您的界面设计中。
在我看来,这两种方法之间的差异很小。两者都可以很容易地适应不同风格的 UI。因此,选择哪个对您和您的应用程序更有意义。