controller层(VC):
生成view,然后组装view
响应View的事件和作为view的代理
调用model的数据获取接口,拿到返回数据,处理加工,渲染到view显示
处理view的生命周期
处理界面之间的跳转
model层:
业务逻辑封装
提供数据接口给controller使用
数据持久化存储和读取
作为数据模型存储数据
view层:
界面元素搭建,动画效果,数据展示,
接受用户操作并反馈视觉效果
MVP
MVC的缺点在于并没有区分业务逻辑和业务展示, 这对单元测试很不友好。 MVP针对以上缺点做了优化, 它将业务逻辑和业务展示也做了一层隔离, 对应的就变成了MVCP。 M和V功能不变, 原来的C现在只负责view的生成和作为view的代理(view的布局依然由SceneVC来完成), 而所有的业务逻辑全都转移到了P层.
Model -ViewModel - View
什么是 MVVM:一个 MVC 的增强版,将表示逻辑从 Controller 移出放到一个新的对象里,即 View Mode
https://www.objc.io/issues/13-architecture/mvvm/
MVVM与现有的MVC体系结构兼容。
MVVM使您的应用程序更易于测试。
MVVM最好采用绑定机制。(可以采用kvo delegate 通知)
网友评论