https://www.jianshu.com/p/072552705610 知识点来源
MVC和MVVM的关系
M还是M,V将原来C(ViewController)也当成了V,C被换成了VM
MVC中C同时持有V和M,C操作V和M,M变化通过C修改V,V触发时间通过C改变M
MVVM中VM持有M,V持有VM,V修改M需要通过VM,M的变化通知给到VM,VM再出发V发生改变
VIPER
View 视图或视图控制器,负责展示,捕获用户交互事件,事件触发后调用 Presenter 执行对应的业务逻辑 (点歌台、舞台、大屏幕)
Presenter 处理相关的业务逻辑,控制View显示更新,调用Interactor获取需要的数据 (主持人、演员)
Entities 基础的数据单元,格式化的数据结构 (物料、道具)
Interactor 负责获取组合拼接Entities,提供目标数据值,通过回调给到 Presenter (后勤人员、助理)
Route 负责场景切换 (总导演?更换舞台、主持人)
View 持有 Presenter(触发业务逻辑)
Presenter 弱引用 View(用作回调数据更新显示),持有 Interactor(调用获取数据)
Interactor 弱引用 Presenter(用作回调目标数据),负责获取/生成 Entities(数据库、网络等方式方法)
Entities 只是数据模型
Route 调控 View 和 Presenter