MV*初探

作者: 寿_司 | 来源:发表于2016-04-16 21:24 被阅读0次

    还原真实的MV*模式

    职责分离的思想
    Model + View

    Model + View 介绍Model + View 介绍 MVC模式MVC模式

    MVC

    • Controller处理Model和View之间的应用逻辑。Model负责业务逻辑。
    • 三者的依赖关系:Controller和View依赖Model,Controller和View相互依赖。
    • 三者的调用关系(工作流程):用户操作界面,View产生应用数据,交给Controller对数据进行预处理,进行应用逻辑,之后转交给Model,进行业务处理。之后Model通过订阅者模式对View进行变更通知。


      MVC调用关系MVC调用关系
    • MVC模式的优缺点:
      • 优点:
      1. 业务逻辑和应用逻辑分离程度较高
      2. 观察者模式可以做到多视图同时更新。
      • 缺点:
      1. Controller测试困难,缺少View无法进行测试。
      2. View无法组件化,强依赖特定的Model。
    MVC Model 2模式MVC Model 2模式

    MVC Model 2

    • 应用环境:服务器和客户端之间
    • 工作流程:服务端接受到来自客户端的请求之后,服务端通过路由规则把这个请求交给特定的Controller进行处理,又相应的Controller来进行对应的应用逻辑,对Model进行操作,Model执行业务逻辑之后,然后用数据去渲染特定的模板。返回给客户端。
    MVP模式MVP模式

    MVP

    1. Passive View
      • 组成部分:View + Model + Presenter
      • 调用关系:用户对View进行操作,应用逻辑转交给Presenter,之后Presenter对Model进行相应的操作,等待Model执行完业务逻辑之后,通过观察者模式把自己变更的消息提供给Presenter,Presenter接收到消息之后通过View提供的接口去更新界面。


        MVP(Passive View)调用关系MVP(Passive View)调用关系
      • 重点:MVC中,Controller不可以对View进行操作,但是Presenter可以对View进行操作,View需要提供一组对界面操作的接口对Presenter进行调用。
      • 优缺点:
        • 优点:1. View可以组件化。2. 便于测试,View只需要给Presenter提供一个简单的接口就好了。
        • 缺点:Presenter维护比较困难应用逻辑+View -> Model/Model -> View的转化。
    2. Supervising Controller


      MVP(Supervising Controller)调用关系MVP(Supervising Controller)调用关系
      • Presenter会把一部分简单的同步逻辑交给View进行处理,Presenter只负责比较复杂的高层次的UI制作。
    MVVM模式MVVM模式

    MVVM

    • 组成部分:View + Model + ViewModel ViewModel 含义是“Model of View”视图的模型,包括了领域模型(Domain Model)和视图的状态(State)。简单的可以理解成页面上所显示内容的数据抽象。
    • 工作流程(调用关系):ViewModel里面有一个叫做Binder高智能工具,可以将View和Model联系起来。只需要在View指令式的声明是和哪一块Model绑定在一起的,就可以通过Binder自动进行双向数据绑定。数据变更实时渲染。MVVM把View和Model的同步逻辑自动化了。以前Presenter负责 的View和Model同步无需手动操作,自动交由框架提供的Binder进行负责。


      MVVM调用关系MVVM调用关系
    • 优缺点:
      • 优点:提高可维护性,简化测试。
      • 缺点:
      1. 对于过于简单的图形界面不适用。
      2. 对于大型的图形应用程序,视图状态较多的,ViewModel的构建和维护成本很高。
      3. 数据绑定的声明是指令式的写在View模板中的,所以没有办法去打断点debug。

    参考文章:livoras界面之下:还原真实的MV*模式

    相关文章

      网友评论

          本文标题:MV*初探

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