挖坑,持续填坑

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

MVCS