当前位置: 首页 > news >正文

浅谈MVVM架构

      一直以来,iOS应用开发中使用的都是MVC架构,M:model,V:View,C:Controller 三者独立开来大大减少MV之间的耦合度,与此同时给C层带来沉重的负担,随着项目开发度的增大,致使C层代码异常复杂。然而近年新出的MVVM架构有取代MVC架构的趋势。

      什么是MVVM架构呢?其实它就是一个MVC架构的增强版,我们正式连接了视图和控制器,并将表示逻辑从Controller移出放到一个新的对象里,即View Model。MVVM架构听起来很复杂,但它本质上就是一个精心优化的MVC架构,而 MVC架构你早已熟悉。它正式规范了视图和控制器紧耦合的性质,并引入新的组件。

      在MVVM架构里,view和view controller正式联系在一起,我们把它们视为一个组件。视图view仍然不能直接引用模型model,当然controller也不能。相反,他们引用视图模型view model。view model是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。有一件事情不应归入view model,那就是任何视图本身的引用。

  然而要在项目中使用MVVM架构,那与其匹配使用的非ReactiveCocoa框架莫属了,至于ReactiveCocoa框架详细使用,本文暂不介绍。建议入门不久的开发者可以适当学习下MVVM架构来开发应用,有经验的开发者可以把尝试项目中MVC架构换成MVVM架构哦。

 

转载于:https://www.cnblogs.com/ac1217/p/5142414.html

相关文章:

  • Python执行需要经过哪些过程
  • OSI
  • 例题 3-6 环状序列
  • JQuery中使用Ajax实现诸如登录名检测等异步请求Demo
  • java String、Data、Calendar时间转化
  • js 打印
  • Java NIO读书笔记
  • angular
  • Oracle使用总结
  • 通过keepalived实现 MySQL VIP 自动切换
  • Swift - 37 - 值类型和引用类型的简单理解
  • 算法导论 第六章 2 优先队列(python)
  • gdb跟踪应用程序原理浅析
  • ORACLE 11G内存管理方式
  • 正则表达式总结
  • 【笔记】你不知道的JS读书笔记——Promise
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android框架之Volley
  • ES6之路之模块详解
  • express + mock 让前后台并行开发
  • HTTP中GET与POST的区别 99%的错误认识
  • IDEA常用插件整理
  • iOS编译提示和导航提示
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mongo索引构建
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 工程优化暨babel升级小记
  • 后端_MYSQL
  • 理清楚Vue的结构
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 用jQuery怎么做到前后端分离
  • ​Java并发新构件之Exchanger
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #define用法
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (译)计算距离、方位和更多经纬度之间的点
  • (转载)(官方)UE4--图像编程----着色器开发
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 反射的使用
  • .NET 中让 Task 支持带超时的异步等待
  • .Net7 环境安装配置
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [BZOJ1053][HAOI2007]反素数ant
  • [C# 开发技巧]实现属于自己的截图工具
  • [CF407E]k-d-sequence
  • [DevEpxress]GridControl 显示Gif动画
  • [Hadoop in China 2011] Hadoop之上 中国移动“大云”系统解析
  • [LeetCode] Binary Tree Preorder Traversal 二叉树的先序遍历
  • [one_demo_7]求走到第50个台阶的走法多少种
  • [php] 数据结构算法(PHP描述) 快速排序 quick sort
  • [Python]面向对象基础
  • [StartingPoint][Tier1]Crocodile
  • [STL]C++ STL中常见容器的时间复杂度