要点:

1.  什么是MVC

2. 了解Cocoa的伪MVC本质

MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

优点

耦合性低,重用性高,生命周期,成本低,部署快,可维护性高,有利软件工程化管理

缺点

没有明确的定义,不适合小、中等规模的应用程序,增加系统结构和实现的复杂性,视图与控制器间的过于紧密的连接,视图对模型数据的低效率访问,一般高级的界面工具或构造器不支持模式

总的来说有优势,也有劣势,其核心来说还是界面、逻辑、基础架构分离的思想,这是毫无疑问非常正确的,但要说一定要搞个什么M,C,V也完全没有必要。

拆穿Cocoa的伪MVC本质

网上看到有个人说C#没有OC架构好,没有ViewController层,我就笑了~~我不禁要问一句你真的了解什么是MVC吗?你真的从OC乱糟糟的ViewController架构中获益了吗?

MVC的核心是业务逻辑、数据、界面显示分离,这样就可以复用核心的业务逻辑。

比方说我有一套界面驱动的代码,现在要做一套脚本驱动或者命令行模式的运行方式,那么我的核心的业务逻辑可以直接拿来用,不需要修改,这才是MVC!

这跟OC的View Controller完全是两个概念!OC的View Controller作用主要还是控制界面,在界面与核心逻辑之间搭建起一座桥梁,虽然不能说不好,但是其逻辑上完全跟界面结合在一起,根本就不具备复用性,哪里能谈得上MVC。

所以IOS的这一套架构根本就不符合MVC的理念,只能算是伪MVC。

iOS - MVC框架相关推荐

  1. javascript:12种JavaScript MVC框架之比较

    Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...

  2. PHP MVC框架核心类

    现在我们举几个核心框架的例子演示:在framework/core下建立一个Framework.class.php的文件.写入以下代码: // framework/core/Framework.clas ...

  3. [转]12种JavaScript MVC框架之比较

    From : http://www.infoq.com/cn/news/2012/05/js-mvc-framework/ Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月 ...

  4. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求响应

    <200行代码,7个对象--让你了解ASP.NET Core框架的本质>让很多读者对ASP.NET Core管道有了真实的了解.在过去很长一段时间中,有很多人私信给我:能否按照相同的方式分 ...

  5. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]

    <200行代码,7个对象--让你了解ASP.NET Core框架的本质>让很多读者对ASP.NET Core管道有了真实的了解.在过去很长一段时间中,有很多人私信给我:能否按照相同的方式分 ...

  6. 多款优秀的 JS MVC 框架对比

    2019独角兽企业重金招聘Python工程师标准>>> 正如之前说的,产品生产有功能时代转入体验时代,产品为王,体验为王,已经是时代趋势.体验经济的到来,说明前端的技术要求越来越高, ...

  7. php mvc教程 文档,PHP培训教程教你快速打造PHP MVC框架[PHP基础教程]

    PHP培训教程教你快速打造PHP MVC框架[PHP基础教程] 简介 MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架.虽然不能保证100%的开 ...

  8. 12种JavaScript MVC框架之比较

    2019独角兽企业重金招聘Python工程师标准>>> 此次比较针对的特性标准有四种,分别是: UI 绑定(UI Bindings) 复合视图(Composed Views) Web ...

  9. JavaScript MVC 框架比较

    Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...

最新文章

  1. python测试开发django-35.xadmin注册表信息
  2. SEH(结构化异常处理)
  3. Kubernetes网络方案Flannel的学习笔记
  4. boost::log::expressions::has_attr用法的测试程序
  5. NC107617 poj3020 Antenna Placement
  6. linux如何更新数据包up,Linux更新(update/upgrade) 修改更新源
  7. Linux下的c++编程
  8. 8成功的用户界面特性
  9. Oracle Shared Pool优化思路
  10. 【百度地图API】建立全国银行位置查询系统(一)——如何创建地图
  11. 计算机辅助设计与制造实例教程答案,计算机辅助设计实例教程= Example Course of Computer Aided Design...
  12. 网页设计html对联样式代码,纯CSS做对联广告代码
  13. C++题目分享之锯木头
  14. mac 解决sudo: no valid sudoers sources found, quitting
  15. 利用C语言绘制操作系统图像界面
  16. 超全Redis命令总结(备忘)(建议赶紧收藏)
  17. np.subtract.outer()
  18. FFmpeg命令行工具系列二---转码流程及过滤器
  19. python根据url获得m3u8_python爬取m3u8连接的视频
  20. 数据采集之--换个IP

热门文章

  1. Ubuntu系统拼音无法正确打字怎么解决?
  2. NoSQL从小白到码神 火推08
  3. Android地址选择器的实现
  4. web开发中前端页面是如何跟后端服务器数据交互的
  5. Flask-Assets 使用autoprefixer并压缩css/JS文件提高访问速度
  6. 【强推文章】如果你在犹豫要不要去外包公司,不妨看看这篇文章(自己深有感触)
  7. 从iOS 11看怎样设计APP图标
  8. 立体视觉相机使用JetsonTX2提升图像
  9. 插件!crx插件包下载网址与安装方法!!
  10. Linux完全清除防火墙策略,linux下的软件防火墙iptables——规则的查看与清除、定义默认策略,...