iOS架构&框架

  • iOS架构/框架的作用
    模块化
    分层
    解耦
    降低代码重合度

缓存框架

image.png

图片经过什么方式进行读写,过程是怎样的?
* 以图片URL的单向hash值作为key去查找


image.png

* 内存设计上需要考虑哪些问题?
存储大小size
淘汰策略


image.png

image.png

image.png

* 磁盘设计需要考虑哪些问题
存储方式

大小限制(如100MB)
淘汰策略(如某一张图片存储时间距今已经超过7天)
* 网络设计需要考虑哪些问题
图片请求最大并发量
请求超时策略
请求优先级
* 不同格式的图片,采用什么方式解码?
应用策略模式来对不同图片格式进行解码
*在哪个阶段做图片解码操作
磁盘读取后解码,减少主线程的压力
网络请求返回后

阅读时长统计框架

image.png

* 为什么要有不同类型的记录器?
基于不同分类场景提供的,关于记录的封装和适配
* 记录的数据可能会由于某种原因丢失,怎么处理?
定时写磁盘(如间隔10分钟就写磁盘)
限定内存缓存条数,如超过该条数就写磁盘
* 记录器上传时机:立刻、延时、定时
延时上传场景:前后台切换时上传、网络变化时上传。

客户端整体架构

image.png
  • 业务之间的解耦通信方式
    OpenURL
    依赖注入


    image.png

MVC

MVP

MVVM

MVVM.png

MVP.png

MVC.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。