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

你可能感兴趣的:(iOS架构&框架)