MVVM 是 Model - View - ViewModel 的缩写 可以看到他和之前的MVC很像,的确有人称之为一个加强优化版的MVC. 是一种模块化开发代码分层的思想或者框架!

MVVM 的优点
1、主要目的是分离视图(View)和模型(Model)
2、降低代码耦合,提高视图或者逻辑的重用性。
3、提高了模块的可测试性

任务分工

1、模型(Model)

  模型和业务数据绑定,方便数据的使用和传递

2、视图(View
![Uploading 屏幕快照 2016-06-01 上午10.28.13_147186.png . . .]-control)

  视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。

如: label 、button 、view、ImageView、textfield 、textview、以及他们的组合 等等!

3、ViewModel

首先它的创建需要将Model中的数据绑定在他身上。将原来MVC中的业务逻辑剥离出来 写在ViewModel中,简化view 、和 controller

屏幕快照 2016-06-01 上午10.28.13.png

使用步骤
1、模块中需要的数据,通过网络层请求得到 ,然后将数据绑定到Model层中
2、将model层中的数据转化到ViewModel中,然后在ViewModel中处理一些逻辑问题
3、将ViewModel中的数据绑定到控制器的View上 然后更新界面

(MVVM配合ReactiveCocoa使用才能体会到ViewMedel的强大!)

http://www.jianshu.com/p/bc297d9e6aa5

MVVM 的理解的更多相关文章

  1. MVVM的理解和Vue的生命周期

    一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...

  2. MVVM框架理解

    MVC框架 将整个前端页面分成View,Controller,Modal,视图上发生变化,通过Controller(控件)将响应传入到Model(数据源),由数据源改变View上面的数据. 整个过程看 ...

  3. MVC与MVVM设计模式理解

    MVC设计模式(View和Model之间不能直接通信) MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller: Model负责存储.定义.操作数据.从网络中获取 ...

  4. WPF MVVM 之理解(数据绑定)

    (申明:最近在做一个练习,写点东西,谨供参考.) 1.界面展示:其中的布局和样式就不说了,重点在MVVM架构和数据绑定(Model层使用EF(Entity Framework)实体框架,不做介绍). ...

  5. iOS开发下对MVVM的理解

    最近看到新浪微博上以及iOS开发的论坛里面谈到MVVM设计模式,所谓MVVM就是Model-View-ViewModel的缩写,关于MVVM的概念,这里我不想过多的介绍,有很多介绍的很详细的博文,这里 ...

  6. 对于MVVM的理解

    MVVM 是Model-View-ViewModel的缩写. Model 代表数据模型,也可以在model中定义数据修改和操作的业务逻辑. View 代表UI组件,负责姜黄素局模型转化成UI展现出来. ...

  7. [HMLY]14.对iOS开发中使用MVVM的理解和使用(初级)

    前言 MVVMDemo 之前几个月一直在学习react-native,它的组件化开发真的是很棒,控件和页面的组件化在开发中可以很好的复用,节省开发时间.在那个时候还不知道react-native开发用 ...

  8. MVVM模式理解

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  9. 谈谈对MVC、MVP和MVVM的理解

    刚出来工作的时候维护过一个老系统,该系统是用微软的ASP(Active Server Pages 动态服务器页面)写的.每一个页面都是一个ASP文件,每一个一个ASP文件中又同时包含了HTML.CSS ...

随机推荐

  1. bzoj4385 Wilcze doły

    Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. Input 第一 ...

  2. 转!!!解释Eclipse下Tomcat项目部署路径问题(.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps)

    1.配置eclipse的开发环境,配置jdk的安装路径和tomcat安装路径. 2.在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一个tomca ...

  3. js中,object可以调用style对象,[]不可以调用style对象

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" Content=&q ...

  4. Spark Standalone模式HA环境搭建

    Spark Standalone模式常见的HA部署方式有两种:基于文件系统的HA和基于ZK的HA 本篇只介绍基于ZK的HA环境搭建: $SPARK_HOME/conf/spark-env.sh 添加S ...

  5. reduce|sum

    reduce() 函数会对参数序列中元素进行累积. 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1.2 个 ...

  6. vb 使用StreamWriter书写流写出数据并生成文件

    sql = "Select case when date ='' then '0'else CONVERT(varchar(100), date, 101) end as date,case ...

  7. [Flutter] 发布自己的插件 package

    我们自己做了插件包,当然也想发布到pub.dartlang.org上去.怎么发布呢?先看看官方的说明(https://flutter.io/developing-packages/). Publish ...

  8. Eclipse在线安装STS插件

    转自:https://blog.csdn.net/weixin_41987553/article/details/81091280 spring Boot是由Pivotal团队提供的全新框架,其设计目 ...

  9. java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

    String[] 转换成 ArrayList 报的错. String[] str = {"A","B"}; ArrayList<String> li ...

  10. linux时间

    1.查看时间:date Thu Mar  2 13:22:54 UTC 2017 2.查看时区:date -R Thu, 02 Mar 2017 13:23:32 +0000 3.Linux时间戳:d ...