iOS开发iOS技术专题iOS Developer

iOS MVVM模型中各职责定义

2016-09-21  本文已影响658人  const_zhou

MVC (Model-View-ViewModel)模型

mvc模型是大家最常用也是最喜欢用的开发模型。


MVVM(Model-View-ViewModel)是另一个架构GUI程序的模型

尽管MVVM和MVC看起来很相似(除了用一个ViewModel替换了Controller),但是他们有一个主要的不同:视图拥有ViewModel,和控制器不一样,ViewModel并不知道View的信息。

这点改变提供了很大的好处:

简而言之,用MVVM替换MVC能够使UI代码更加清晰和严格。

ViewModel应该包含的内容

ViewModel就像一个模型的适配器,他能够更好的展示数据。并且他也能够展示行为的变化。例如,一个ViewModel可能处理:

然而,ViewModel并不负责实际信息的呈现或者输入处理,这些是View唯一需要做的领域。当ViewModel需要和View进行通信时,主要通过系统提供的数据绑定来实现的。

ViewController应该包含的内容

OS X和iOS都包含了View(或Windows)Controller,然而在MVVM中并没看到ViewController,乍一看这可能比较困惑,因为MVVM仅仅是关于View的。但细看我们会发现ViewController实际上是View层的一部分,因为他们处理的事情如下:

因此,View实际上的意思是视图层,他包括ViewController。对于同一个屏幕区域,不需要同时拥有View和ViewController,只需要选择一个使用起来最简单的就好。无论你选择一个View或ViewController,你将仍然拥有一个ViewModel。

上一篇下一篇

猜你喜欢

热点阅读