在简书上总结下,场景的三种设计模式MVP MVC MVVM
由于我的技术栈是VUE,属于MVVM开发模式,因此对MVVM根据熟悉一点。如果有什么错误欢迎指出。
本文主要是查看阮一峰大佬的文章学习的,附上链接
一、MVC
MVC分三层
M:模板层 -- 数据
V:视图层 -- 用户操作界面
C:控制层 -- 逻辑处理
他们之间的数据都是单向流动的,一般是这样:

上图应该是最常见的MVC模式,用户在视图层进行操作,视图层将指令发送给控制层,控制层做出逻辑处理后更新数据。数据层更新后通知视图进行更新,用户得到反馈。
二、MVP

如上图所示,Controller被改成了Presenter。V与M不再直接通信,统一通过P层进行相互通信。
其中,View、Model与Presenter的通信都是双向的。
视图层的业务很少,所有的逻辑都被封装在Presenter中。
PS:因为我个人从来没用过MVP模式,可能理解的不透彻。
三、MVVM

可以看出了MVVM和MVP模式非常类似,唯一的区别就是ViewModel和View采用双向绑定的方式进行通信。
比如在VUE中,数据和视图能形成双向绑定的关系。视图层的改动会同步到数据,反之亦然。这个操作不用开发者主动写逻辑去实现,因为框架已经帮你封装好了。使用MVVM模式,开发者只需要关注业务逻辑即可,层级通信由框架代劳。
网友评论