我对应用程序控制器应该做什么有点困惑?因为我看到MVP模式中也存在功能,以便在单击按钮时显示哪些表单?对于使用应用程序控制器模式的Windows窗体,是否有任何好的示例?
MVC(ontroler)和Application Controller之间存在差异.我知道MVC(ontroller),我不确定应用程序控制器的职责是什么,它如何适合WinForms应用程序.Martin Fowler也将其称为应用程序控制器模式,当然它与MVC(ontroller)不同?
应用程序控制器与MVC中使用的控制器有点不同.
Martin Fowler在应用程序控制器上的页面.
在MVP WinForms应用程序的情况下,这似乎是我想的问题主题.您可以将"我现在显示的格式"的所有逻辑放入Presenter,但随着应用程序的增长,您将在演示者之间复制大量代码.
假设您有两个视图,它们都有一个"编辑此窗口小部件"按钮,它们都必须具有获取WidgetEditorPresenter并显示关联视图的逻辑.如果你有一个ApplicationController,你将该逻辑移动到ApplicationController中,现在你只需要在ApplicationController上的所有演示者中有一个依赖项,你就可以调用appController.EditWidget(),它会弹出正确的视图.
应用程序控制器是一个超级控制器,可以在您从一个屏幕移动到另一个屏幕时控制整个系统的应用程序流.
我最近写了一篇关于在C#Winforms项目中创建和使用ApplicationController的文章,以直接将表单中的工作流和演示者与表单分离.它可能有所帮助:
使用应用程序控制器解耦工作流和表单
编辑:
Archive.org目前有一篇更易读的文章副本.