经常听到这些MVC,MVP,MVVM这些词,其实这些都是设计模式或者说是构架范式,也就是你一个软件从前端到后端构架的样例模型。
MVC模式:
听到最多的就是MVC模式,上学的时候就讲过这个,Model(模型)-View(视图)-Controller(控制器)。
我看有人把model称之为数据核心其实蛮有意思,因为Model其实不只有数据,还有访问接口的(了解这个的话其实后面关于MVVM要好很多),view向用户做展示用的,controller要负责用户的交互。
MVP模式
Model-View-Presentor
实际上MVP是对MVC框架的一次调整,当Model发生数据变化datachange事件,controller负责监听并更新View。MVP和MVC重大不同是,View和Model是完全隔离的,所有的交互都是在Presentor里来进行(你其实可以把这个Presentor看成Controller)。
MVVM模式
View-ViewModel-Model
通过下图可以看到一些区别了,这边view和model彻底断开了,model有变化也要通过ViewModel来体现来传达给view。为什么这样搞有什么好处?其实从实际上来看,我们的View并不一定给所有人展示的都是同样的界面。所以有的时候,要数据绑定view上的一些属性,做到局部响应局部更新。可以理解为ViewModel是为了View而设计的Model层,他的数据是和View是对应的。
MVMP
了解了MVVM和MVP其实MVMP就是两者的有一次结合。
微信公众号:我是坑货