我自己怎么建网站,网站制作 成都,wordpress 容易被收录吗,做论坛网站的元素一、MVVM概述 MVVM 到底是什么#xff1f;我们首先看一下MVC架构#xff1a;我们看到的是一个典型的 MVC 设置。Model 呈现数据#xff0c;View 呈现用户界面#xff0c;而 View Controller 调节它两者之间的交互。Cool#xff01;稍微考虑一下#xff0c;虽然 View 和 … 一、MVVM概述 MVVM 到底是什么我们首先看一下MVC架构 我们看到的是一个典型的 MVC 设置。Model 呈现数据View 呈现用户界面而 View Controller 调节它两者之间的交互。Cool 稍微考虑一下虽然 View 和 View Controller 是技术上不同的组件但它们几乎总是手牵手在一起成对的。你什么时候看到一个 View 能够与不同 View Controller 配对或者反过来所以为什么不正规化它们的连接呢 这更准确地描述了你可能已经编写的 MVC 代码。但它并没有做太多事情来解决 iOS 应用中日益增长的重量级视图控制器的问题。在典型的 MVC 应用里许多逻辑被放在 View Controller 里。它们中的一些确实属于 View Controller但更多的是所谓的“表示逻辑presentation logic”以 MVVM 属术语来说就是那些将 Model 数据转换为 View 可以呈现的东西的事情例如将一个 NSDate 转换为一个格式化过的 NSString。 我们的图解里缺少某些东西那些使我们可以把所有表示逻辑放进去的东西。我们打算将其称为 “View Model” —— 它位于 View/Controller 与 Model 之间 看起好多了这个图解准确地描述了什么是 MVVM一个 MVC 的增强版我们正式连接了视图和控制器并将表示逻辑从 Controller 移出放到一个新的对象里即 View Model。MVVM 听起来很复杂但它本质上就是一个精心优化的 MVC 架构而 MVC 你早已熟悉。 MVVM模式中取消了控制器的概念将View和ViewController整合成了View的概念因为在iOS开发中UIViewController本来就是Controller和View的一个集合。 二、MVVM实现 现在我们知道了什么是 MVVM但为什么我们会想要去使用它呢在 iOS 上使用 MVVM 的动机对我来说无论如何就是它能减少 View Controller 的复杂性并使得表示逻辑更易于测试。通过一些例子我们将看到它如何达到这些目标。 此处有三个重点是我希望你看完本文能带走的 1MVVM 可以兼容你当下使用的 MVC 架构。 2MVVM 增加你的应用的可测试性。 3MVVM 配合一个绑定机制效果最好。 如我们之前所见MVVM 基本上就是 MVC 的改进版所以很容易就能看到它如何被整合到现有使用典型 MVC 架构的应用中。让我们看一个简单的 Person Model 以及相应的 View Controller Cool现在我们假设我们有一个 PersonViewController 在 viewDidLoad 里只需要基于它的 model 属性设置一些 Label 即可。 这全都直截了当标准的 MVC。现在来看看我们如何用一个 View Model 来增强它。 我们的 View Model 的实现大概如下 Cool我们已经将 viewDidLoad 中的表示逻辑放入我们的 View Model 里了。此时我们新的 viewDidLoad 就会非常轻量 所以如你所见并没有对我们的 MVC 架构做太多改变。还是同样的代码只不过移动了位置。它与 MVC 兼容带来更轻量的 View Controllers。 以上转载自http://mobile.51cto.com/iphone-475071.htm