设计模式
挖坑,持续填坑
MVC
- C负责M和V的对象管理和生命周期
- M和V完全分离
缺点:
- C的业务负担较重
MVP
- MVP+C ,本质还有C的存在
- C持有P对象,P弱引用C
- P的定位和MVC中的C类似,相当于把C的工作拆分成多个P,每个P负责部分业务功能,
- C负责管理P对象管理和生命周期,对P做业务扩展
MVVM
- MVVM+C 类似MVP,C可以有多个VM
- VM持有M对象,持有V的对象
- V不引用VM的头文件,只声明类型;和M分离
- 数据响应不再是VM发起,有V建立观察器去监听变化;
实现方法:kvo,KVOController,RAC
优点: 进一步减少了VM的负担
理解还是片面,待整理
https://medium.com/@dev.omartarek/mvp-vs-mvvm-in-ios-using-swift-337884d4fc6f
https://www.raywenderlich.com/34-design-patterns-by-tutorials-mvvm