回顾一下MVX模式

作者: 7天苹果 | 来源:发表于2017-11-26 13:48 被阅读56次

一 、MVC

       MVC是应用最广泛的软件架构之一,一般MVC分为:Model(模型)、Controller(控制器)和View(视图)。这主要是基于分层的目的,让彼此的职责分开。

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  • View(视图)是应用程序中处理数据显示的部分。
  • Controller(控制器)是应用程序中处理用户交互的部分。

       View一般是通过Controller来和Model进行联系的。Controller是Model和View的协调者,View和Model不直接联系。基本联系都是单向的。
如图:


MVC通信方式

添加用户操作之后:



用户(User)通过Controller来操作Model以达到View的变化。

优点: 耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理
缺点: 由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
对于小项目,MVC反而会带来更大的工作量以及复杂性。

二、MVP

       MVP是从经典的MVC模式演变而来的,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model负责提供数据,View负责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。

MVP
  • 各部分之间的通信,都是双向的。
  • View 与 Model 不发生联系,都通过 Presenter 传递。
  • View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里

三、MVVM

       因为Presenter层比较笨重,所以产生了ViewModel,ViewModel本身封装了一堆View和Model层同步的逻辑。把同步自动化,从而让开发人员专心于维护业务逻辑代码。

MVVM

相关文章

网友评论

  • 反者道之动001:mvx 看标题吓我一跳哦 我还以为有mvx这个设计模式

    对了 还有mvi
    7天苹果:@谢秀岳 哈哈😄,好哒
  • 韩叨叨:你去实习了吗?
    7天苹果:@韩叨叨 之前转专业的时候跟你们差了一个金工实习,现在用课程设计补上
    韩叨叨:@7天苹果 课程设计?不是毕业设计
    7天苹果:@韩叨叨 没,有个课程设计要做呢,哎

本文标题:回顾一下MVX模式

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