我已经经历了许多链接/博客.我看到他们中的大多数人不能用外行语言清楚沟通,以及MVP,MVVM和MVC之间的技术差异.我知道每个角色代表什么,也是MVP的工作.但是,如果有人问我同一个问题,真的不明白.为什么我不能在MvP中使用控制器而不是Presenter?为什么在MVVM中查看模型而不是主持人,它是如何不同的?我可以在一个单一的声音中说:“MVC是针对ASP.NET进行了优化的,并且还具有VS中的模板,MVP针对SL / WPF的winforms和MVVM进行了优化,因为它支持内置绑定功能等.但我觉得它不是我必须明白的,而是在细节深入.有些人可以用这个详细的说明和用法和实际的原因来选择一个.谢谢你们…
解决方法
我不能给你一个完整的答案,但是我努力学习一些这些模式,可能可以给你一些主要差异的想法.
我先学MVVM,再MVC.我知道MVP和它在理论上如何工作,但是我从来没有真正地构建了一个应用程序.
设计模式之间的最大区别似乎是谁控制应用程序流程和逻辑.
在MVVM中,您的代码类(viewmodels)是您的应用程序,而您的Views只是一个非常友好的用户界面,它位于应用程序代码之上,并允许用户与其进行交互.这意味着viewmodels有一个巨大的工作,因为它们是您的应用程序,并且负责从应用程序流到业务逻辑的一切.
使用MVC,您的视图是您的应用程序,而您的控制器则处理应用程序流程.应用逻辑通常在viewmodel中找到,它们被认为是MVC中的M的一部分(sidenote:MVC中的M不能被认为与MVVM中的M相同,因为MVC的M层包含比MVVM的M层更多的功能).给用户一个屏幕(View),它们与之交互,然后向Controller提交一些内容,并且Controller决定谁使用数据做什么,并向用户返回一个新的View.
我没有使用MVP,但是我对此的理解与MVC非常相似,但是针对桌面应用程序而不是客户机/服务器应用程序进行了优化.视图是实际的应用程序,而Presenter处理应用程序事件和业务逻辑.