关于MVVM

iOS关于MVVM

MVVM基本概念

Model

和MVC中的model一样,可以针对model封装一些额外的逻辑。注意:可以封装与model切身相关的,其他与model非相关的避免出现。

View

由MVC中的view和controller组成,负责UI的展示,绑定viewModel中的属性,出发viewModel中的命令以及呈现viewModel的数据。

ViewModel

viewModel是从MVC的controller中抽取出来的展示逻辑,负责从model中获取view所需的数据,转换成view可以展示的数据。 view从必要的资源(数据库,网络请求,本地缓存等)获取原始数据,根据视图的展示逻辑,处理成view(controller)的展示数据。 viewModel存在的目的在于抽离controller中展示业务的逻辑,而不是替代controller,所以viewModel中不应该出现任何view对象,更不应该存在控制器跳转逻辑。 从上图可知,controller夹在view和viewModel之间做的其中一个主要事情就是将view和viewModel进行绑定。在逻辑上,controller知道应该展示哪个View,Controller也知道应该使用哪个viewModel来提供数据,而view和viewModel之间是互相是不知道的,所以Controller仅关注viewModel的数据配置和管理各种各样的视图。切记,并非是ViewModel去控制什么时候展示View。

MVVM优点

低耦合

视图可以独立与Model变化和修改,一个ViewModel可以绑定到不通的“View”上,当View变化的时候,Model可以不变,当Model变化的时候View也可以不变。

可重用性

可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

独立开发

开发人员可以专注于业务逻辑和数据的开发,设计人员可以专注于页面的设计。

可测试

界面经常是难于测试的,在MVVM中可以针对ViewModel来测试。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦