MVC/MVP/MVVM
约 457 字大约 2 分钟
2022-04-20
提问
- MVC
- MVP
- MVVM
- 区别
说明
以上架构设计模式,仅限于在前端领域内进行说明
Model&View
Model是用于封装应用程序的业务逻辑的相关数据以及对数据的处理方法。View作为视图层,主要负责数据的展示。
MVC
C 是指 Controller。负责监听 View 的用户事件,得到数据后后 Controller 做一些处理,然后渲染 View。
MVC 通过分离 Model、View 和 Controller 的方式来组织代码结构。 View 和 Model 应用了观察者模式,当 Model 层发生改变的时候它会通知有关 View 层更新页面。 Controller 层是 View 层和 Model 层的纽带,它主要负责用户与应用的响应操作,当用户与页面产生交互的时候, Controller 中的事件触发器就开始工作了,通过调用 Model 层,来完成对 Model 的修改,然后 Model 层再去通知 View 层更新。
MVP
P 是指 Presenter。Presenter会调用View层提供的接口去渲染Model。
MVP 模式中,View 层的接口暴露给了 Presenter, 因此可以在 Presenter 中将 Model 的变化和 View 的变化绑定在一起,以此来实现 View 和 Model 的同步更新。 这样就实现了对 View 和 Model 的解耦,Presenter 还包含了其他的响应逻辑。
MVVM
VM 是指 ViewModel。
MVVM 在VM中构建一组状态数据(state data),作为View状态的抽象。 然后通过 双向数据绑定(data binding) 使VM中的 状态数据(state data) 与View中的 显示状态(screen state) 保持一致。 这样,VM中的展示逻辑只需要修改对应的状态数据,就可以控制View的状态,从而避免在View上开发大量的接口。
