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 等)。
我一直在阅读 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 等)。