美文网首页
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