美文网首页
MVP和MVVM模式(笔记)

MVP和MVVM模式(笔记)

作者: 葵自渡_ | 来源:发表于2019-05-22 15:04 被阅读0次

1.MVP模式

M:Model(数据层,提供数据
V:View(视图层,负责显示
P:Presenter(控制器,负责逻辑的处理)(最核心的一层)

特点

  • MVP是面向DOM编程。
  • 在MVP中,View并不能直接与Model发生交互,而需要通过Presenter发生通信,此时Presenter相当于一个中转站。所有的交互都发生在Presenter内部
  • Presenter与View没有直接关联,是通过定义好的接口进行交互
mvp.png

优点:

  • 模型与视图完全分离,修改view时不会影响model
  • 可以更高效地使用model,因为所有的交互都发生Presenter里
  • 可以将一个Presenter用于多个View,而不需要改变Presenter的逻辑。
  • 如果把逻辑放在Presenter中,就可以脱离用户接口来测试这些逻辑(?)

缺点:

  • View和Presenter的交互会过于频繁
  • 当Presenter过多地渲染了View,一旦视图需要变更,那么Presenter也需要变更了

ps:在MVC里,View是可以直接访问Model的,但是我们不建议在 View 中依赖 Model,而是要求尽可能把所有业务逻辑都放在 Controller 中处理,而 View 只和 Controller 交互

2.MVVM模式

M:Model(数据模型,数据和业务逻辑都在这层定义
V:View(视图层,负责显示
VM:ViewModel(视图模型,负责监听Model中数据的改变并控制视图的更新,处理用户交互操作

特点

  • MVVM是面向数据编程。
  • 在MVVM中,只需要关注M层,数据发生变化,页面会重新渲染。
  • 在MVVM中,View与Model没有直接联系,而是通过ViewModel交互
  • Model和ViewModel之间有双向绑定。
MVVM.png

优点:

  • 减少DOM操作
  • 实现了Model和View的数据自动同步
  • 可重用性,低耦合,可测试,独立开发

相关文章

网友评论

      本文标题:MVP和MVVM模式(笔记)

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