MV*初探

还原真实的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*模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容