1、作为iOS项目中最大的文件,ViewControllers中的代码复用率几乎是最低的
2、重量级的View COntroller加大了测试的复杂度。
所以关注ViewController的瘦身,把业务逻辑、网络请求、Views的代码移到合适的地方,进而提高代码可读性、降低耦合、提高复用、降低测试难度极为重要
一、把DataSource和其他Protocols分离出来
比如uiTableView中的DataSource大多都是对数组做的一些操作,可以把数组操作相关的代码移到单独的类中。可以使用block或者delegate来设置一个cell。
二、把业务逻辑、网络请求逻辑移动到Model中
业务逻辑类的代码要放到Model对象中。但是对于不能轻易移动到Model对象中,但是和Model代码相关的,我们可以创建一个Store类
Store被称为服务层或者仓库,主要关心的是数据加载、缓存和设计数据栈
网络请求逻辑也要移动到Model层中,不要在ViewController中做网络请求的逻辑。你应该把网络请求封装到一个类中。这样你的ViewController就可以在之后通过回调函数来请求网络了。

转载于:https://www.cnblogs.com/geek6/p/3854353.html

为什么要编写轻量级的View Controller??相关推荐

  1. 打造轻量化的View Controller

    2019独角兽企业重金招聘Python工程师标准>>> 本文由破船译自objc 小引 很早以前就看到了这篇文章,该文是Lighter View Controllers中比较重要的一篇 ...

  2. 0306--iOS之阅读View Controller Programming Guide for iOS---(三)Presentations and Trasitions

    Presenting a View Controller                                                 --显示vc There are two wa ...

  3. MVC(Model View Controller)框架

    MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...

  4. 关于Page翻页效果--Page View Controller

    Page View Controllers 你使用一个page view controller用page by page的方式来展示内容.一个page view controller管理一个self- ...

  5. 关于创建Custom Container View Controller

    在我们现实的项目中,很多刚入行的工程师可能不会很在意controller的设计概念,因为接到的项目有限,而且多数公司的项目架构已经由主程开发好了,所以能接触到的只不过是一些功能模块,这对一个程序员的发 ...

  6. iOS 因为reason: 'Pushing the same view controller instance more than once is not supported而奔溃(下)...

    这个问题是什么意思呢,之前遇到过几次,但程序再次打开时没有问题,也就没有重视,今天又遇到了,无法忍受啊. 控制台报的错误是:"不支持多次推入相同的视图控制器实例". 什么原因造成的 ...

  7. SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods

    SAPUI5 View Controller lifecycle methods Create an Application Project for SAPUI5 打开 Eclipse 并转到菜单选项 ...

  8. SAP UI5 view controller lifecycle discussion - onInit

    Created by Jerry Wang, last modified on Aug 08, 2014 新建一个view instance: Callstack2: 这个view的实例化会调用下图所 ...

  9. view controller lifecycle discussion - onInit

    Created by Jerry Wang, last modified on Aug 08, 2014 新建一个view instance: Callstack2: 这个view的实例化会调用下图所 ...

  10. Swift3.0中如何完成不同View Controller之间的切换

    在网上看过一些关于View Controller之间的切换的介绍,但是由于我使用的是swift3.0,所以在一些语法上面有写不同,但是思路还是一样的.下面是我整理的一些关于swift3.0中View ...

最新文章

  1. 保研软件学院和计算机学院,西南大学计算机与信息科学学院·软件学院(专业学位)计算机技术保研细则...
  2. 【 English 】程序员必备单词
  3. 谨记!怎么样的编程会让你进监狱?
  4. oracle表空间操作详解
  5. 文巾解题 181. 超过经理收入的员工
  6. 微软任务管理软件 Planner,Office 365 用户免费用
  7. aspnetboilerplate .net core 使用原生sql
  8. IP5的接口模式运行测试
  9. mysql 5.0 数据库_mysql5.0常用命令
  10. java定义一个方法,返回一个浮点数保留两位小数,考虑四舍五入的结果
  11. Python要点总结,我使用了100个小例子!
  12. POM思想__多个页面时进行的处理
  13. 51单片机按键控制数码管0~9_0.39寸2位数码管厂家
  14. python模块_第七讲:Python模块
  15. Python 十进制转换二进制
  16. OpenFoam | 全面解析sprayFoam | 一、对象parcels属于哪个类
  17. mac php dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib 亲测有效
  18. python中的中英文字符统计
  19. 用C++实现中国象棋
  20. vue2.0 axios 登录post请求自动读取Set-Cookie设置

热门文章

  1. dblink连接远程mysql_MySQL中使用federated 实现dblink 远程表访问
  2. 《中国人工智能学会通讯》——11.24 本文的出发点:模仿人类视觉
  3. 好书推荐:OpenSuse
  4. 关于代码审查的几点建议
  5. Java分布式服务框架Dubbo初探(待实践)
  6. HTML学习基础教程
  7. MySQL 数据库操作命令汇总
  8. print_r与var_dump
  9. 用接纳的心看待新员工
  10. 微软4月13日发布Silverlight 4正式版