MVC 与 MVP 中如何处理用户输入?

How is user input handled in MVC vs MVP?

我一直在阅读 MVC 与 MVP 的对比,经常提到的一点是 MVC 在处理用户输入的方式上不同于 MVP。

在 MVP 中,视图将用户输入委托给 Presenter,而在 MVC 中,控制器应该是管理用户输入的应用程序的唯一部分。

我觉得这有点奇怪。我从来没有遇到过 GUI 框架,我不必在其中将视图中引发的事件(主要是某种小部件)委托给其他地方,以根据引发的事件执行某些操作。

如果是这样的话,MVC 和 Supervising Controller 之间有区别吗?

没错。 MVC 和 MVP 是完全不同的,但是它们都是 UI.

中关注点分离的模式

在 MVC 中,控制器处理请求(通过路由)并将数据推送到视图中,而在 MVP 中,所有事件和渲染都在视图中处理,而 Presenter 仅处理 UI 的业务逻辑。这使得 UI 可测试。 MVP中没有url路由。

MVP 适用于 windows 应用程序和 ASP.net Webforms,而 MVC 更兼容 Web 应用程序(Java spring MVC,或 Asp.net MVC 等)。