- Manager : 核心管理类
- Downloader: 核心下载类
- Cache :缓存类- 内存缓存、磁盘缓存
- Decoder : 解码器 - 图片的格式
- Prefetcher
- Transformer: 图片转换 - 添加圆角、滤镜、旋转、模糊等
- ImageView: 动图与动画
- Utils: 常量与宏定义工具
- Categories: UIView 及子类的加载 image 的扩展
- WebCache Categories: UIView 及子类的缓存扩展
主要描述了类与类之间的关系、实现、协议、属性、等
Manager 主要的管理实例,控制缓存、加载、变换、等属性,回调代理
缓存的核心管理类、内存缓存和磁盘缓存。继承与NSCache
通过解码器,判断图片的类型:png、JPEG、GIF、webp等
Downloader核心类,主要用于下载管理,Operation
主要是 UIView 及子类的扩展缓存,定义一些属性(通过 runtime 实现)
ImageView 先调用category里的方法,通过ImageManager管理类,去找Cache和Loader里的图片,然后加载出来
从分析源码中我学到了什么?
- SDImageTransformer 等类的工厂模式与多态。
- 在操作一个 Operations 时,需要加锁,避免争资源的问题存在。
- 通过宏定义来满足在 iOS 和 Mac OS 等不同苹果设备的使用
- 可以通过协议的实现来扩展属性、参数、等,有较高的自定义性
- 实现一个目标的具体思路,流程等。