层级结构,自底向上

持久层(File,Realm,SQLite)<==>网络层(相信每个公司都有自己的网络层吧)==>业务层(ViewModel)==>展示层(View,VC)

持久层

耦合到网络层

设计要点

持久模型的选择,我这里选择了文件,直接缓存了JSON.txt。并且维护一张表映射到文件,实现快速获取,文件超时删除等操作。持久层的timeout设置,网络层访问到这里的时候,如果超时立即抛弃缓存

网络层

耦合到持久层

设计要点

网络层的设计是基于离散式的,即一个API接口对于一个Class。实现接口复用,有了为同一个公司的多个APP提供APIKit的可能。网络层的设计是基于数据流的。也就是说,你订阅了这个接口,以后这个接口出现刷新,加载数据等,所有的返回及时发送给所有订阅者。一份请求数据,可以多处订阅。例如在首页加载了N个接口,在详情页获取其中某个接口的返回数据,这里你不需要知道那个接口是否加载完成,直接订阅即可。接口实例是可reload,可refresh,可nexPage得,具体基于业务实现是有缓存开关的是可adaptation的。这里可要求过来接收数据的类型实现JSONConvertable协议是可以统一catch一些errors的。

业务层

业务层耦合网络层

设计要点

这里的业务层就抽象成一个若干个ViewModelViewModel维护各种数据流,状态。部分数据是要提供给展示层的展示层和业务层相互订阅。

展示层

展示层和业务层耦合

设计要点

View单纯的包含View。哈哈这里递归了。View也提供事件流,以供和业务层进行绑定。例如这里的view里有一个button,点击button提交数据。这个数据肯定在ViewModel里了。所有,view提供一个buttonClick的信号,ViewModel提供的UploadData的操作。两者绑定即可。ViewController,主要在这里进行业务层ViewModel和视图View的绑定,解绑。

转载自: http://fengdeng.github.io/blog/2016/05/24/xiang-mu-jia-gou-xiao-jie-ios/

转载于:https://www.cnblogs.com/Jenaral/p/5616145.html

iOS项目架构 小谈相关推荐

  1. 项目之后小谈中颖芯片——SH79F166A

    最近刚做完一个项目,刚好用到了国产芯片中颖的SH79F166A,由于是第一次用到这款芯片,很多细节不是很清楚,其中也踩过很多坑,在这里拿出来分享给大家,希望对同样用到这款芯片的朋友遇到相似的问题有所帮 ...

  2. ios APP项目架构心得

    iOS项目架构分为以下几步,这些都是总结的经验之谈 1.架构 1.架构这个概念很抽象,但是用一句话来说叫看菜吃饭,有些人喜欢先看UI在架构,有些人喜欢先把该有的东西有了再看UI,其实都可以-.. 2. ...

  3. iOS应用架构谈 组件化方案

    简述 前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路.我不认为这条组件化之路蘑菇街走对了.分享后我私聊了Limboy,Limboy似乎也明白了问题 ...

  4. iOS应用架构谈 网络层设计方案--RTNetworking

    iOS应用架构谈 开篇  iOS应用架构谈 view层的组织和调用方案  iOS应用架构谈 网络层设计方案  iOS应用架构谈 本地持久化方案及动态部署  iOS应用架构谈 组件化方案 https:/ ...

  5. iOS 应用架构谈:view 层的组织和调用方案

    iOS 应用架构谈:view 层的组织和调用方案 iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构 ...

  6. iOS应用架构谈 网络层设计方案

    iOS应用架构谈 开篇  iOS应用架构谈 view层的组织和调用方案  iOS应用架构谈 网络层设计方案  iOS应用架构谈 本地持久化方案及动态部署  iOS应用架构谈 组件化方案 前言 网络层在 ...

  7. iOS开发系列--iOS应用架构谈

    转自:Casa Taloyum 目录 iOS应用架构谈 (一)开篇 iOS应用架构谈 (二)view层的组织和调用方案 iOS应用架构谈 (三)网络层设计方案 iOS应用架构谈 (四)动态部署方案 i ...

  8. iOS应用架构谈 view层的组织和调用方案

    iOS应用架构谈 开篇  iOS应用架构谈 view层的组织和调用方案  iOS应用架构谈 网络层设计方案  iOS应用架构谈 本地持久化方案及动态部署  iOS应用架构谈 组件化方案 前言 < ...

  9. iOS应用架构谈(2) view层的组织和调用方案

    当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构. 一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们 ...

最新文章

  1. java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)
  2. linux 下 jenkins 安装注意事项
  3. 基于Hibernate的JPA2.0快速构建
  4. CVPR 2018 RASNet:《Learning Attentions: Residual Attentional Siamese Network for Tracking》论文笔记
  5. Java—关于单例模式的实现方式
  6. 数据结构(七)图的遍历(递归非递归方法)
  7. ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储
  8. 一次性清退125名硕博研究生!又一高校发公告
  9. pythonista ios_Pythonista 3 ios版下载_Pythonista 3苹果版
  10. UVa232.Crossword Answers
  11. 查看英伟达NVIDIA显卡型号
  12. CHIP-seq流程学习笔记(9)-使用IDR 软件对生物学重复样本间的差异peak进行提取
  13. 学习MySQL的第二天:SQL(基础篇)
  14. opencv如何把一个矩阵不同列分离开_【opencv基础】OpenCV从Mat中提取某些行或列
  15. the crew 服务器维护,飙酷车神 the crew入门指南 新手必看
  16. web前端简介 | 什么是前端
  17. 汽车电子学习【车载网络CAN/LIN】
  18. 如何实现双因素认证?
  19. 如何用matlab求函数的最值?
  20. 【汇正财经顾晨浩】建筑行业,一带一路合作深化

热门文章

  1. react --- Hook的使用
  2. css --- 清除浮动
  3. JavaScript --- this
  4. Solr管理页面 上
  5. mysql简单创建数据库权限(待修改备注)
  6. 内存管理1retain和release
  7. 初探ArrayList之删除
  8. 使用Raphael实现html中绘图
  9. 单目视觉标定:世界坐标系、相机坐标系、图像坐标系、像素坐标系——简单粗暴,粗暴
  10. 消费类电子认证测试资料清单