美文网首页
MVC和MVVM(MVP)辨析

MVC和MVVM(MVP)辨析

作者: 灭蒙鸟 | 来源:发表于2019-12-03 08:33 被阅读0次

MVC模式和MVVM模式都很熟悉,结构啊,用法啊都很了解,工作中也都有用到(就是在别人写好的架构里添东西而已)但是总觉得没有得到两个模式的精髓。

最近在想CS/BS架构,突然感觉多明白点了。MVC其实是给BS架构用的,而MVVM是给CS架构用的。从MVC模式来源于网站架构,而MVVM起自于WPF也能看出来。

M都是指model,或者说DTO对象,对于这两个模式都一样,没有区别。

VIEW就有些区别了,在MVC中,主要是指静态的页面(UI),由模板引擎来生成的网页(也可以是别的,只要对方能渲染出来),而MVVM中的VIEW则是一个动态的东西,它由VM控制来呈现不同的效果。VM主要通过双向绑定来实现影响VIEW,主动权在VIEW上面。MVVM中 VIEE的编写是声明式的写法,而不是命令式(imperative)的方式。

controller和viewmodel区别就大了,Controller可以理解为无状态的一个个命令,安装输入条件,找出model,生成VIEW,返回前端,特别适合无状态的http请求。(session/cookie等让应用有状态的方式,都是外在的,并不是MVC模式的本质,简单的来说,mvc网可以输入URL直接调用某个Controller)

而VIEWMODEL则可以理解为一个状态机,外在条件改变内部状态就改变,Commond则用来处理一些任务。因为VM是有状态的,所以采用MVVM模式的SPA应用基本上不能通过URL访问某个特定页面。

所以MVC就是给瘦客户端用的,它擅长处理无状态的任务,而MVVM是给胖客户端用的,它是有状态的。

相关文章

网友评论

      本文标题:MVC和MVVM(MVP)辨析

      本文链接:https://www.haomeiwen.com/subject/oqbfgctx.html