MVVM(MVC的增强版)

MVVM(Model-View-ViewModel)

MVVM是什么?

我们都知道MVC(Model-View-Controller),这也是大部分开发者惯用的设计模式,Model 呈现数据,View 呈现用户界面,而 View Controller 调节它两者之间的交互。

但是稍微考虑一下,随着现在App的功能的增加导致复杂程度的提高,我们在View Controller放的东西越来越多,许多逻辑被放在 View Controller 里。它们中的一些确实属于 View Controller,但更多的是所谓的“表示逻辑(presentation logic)”,就是那些将 Model 数据转换为 View 可以呈现的东西的事情,例如将一个 NSDate 转换为一个格式化过的 NSString

MVVM的引进,不是用ViewModel来取代View Controller,而是把“表示逻辑”从View Controller中抽出来放到ViewModel中,来缓解View Controller的压力。

我们用一个框图来更清晰的了解一下MVVM

Model-View-ViewModel

这个图解清晰的展示了什么是MVVC:一个 MVC 的增强版,我们正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model。MVVM 听起来很复杂,但它本质上就是一个精心优化的 MVC 架构,而 MVC 你早已熟悉。

为什么要用MVVC?

在 iOS 上使用 MVVM 的动机,对我来说,无论如何,就是它能减少 View Controller 的复杂性并使得表示逻辑更易于测试。

总结来自于http://objccn.io/issue-13-1/

更多的实例可以去上面的网站看看。

原文地址:https://www.cnblogs.com/dxb123456/p/5478170.html