2020-11-18 MVVM与MVC对比

MVC

M:模型
V:视图
C:控制器
控制器拿到数据显示到视图上
缺点: 控制器中代码繁多,过于臃肿

MVVM

可以说MVVM是MVC改进而来,因为MVC的C太庞大了,所以给他减减重,就新建了一种viewModel类,它继承于NSObject,从viewController中抽出UI逻辑,就放在viewModel里了,在viewModel里每一个view里的UI控件都有与之对应的属性,也就是说,对于在view上要展现的控件,你需要在viewModel里设置控件相对应的数据属性,然后在controller里直接用viewModel的数据属性赋值给相应控件.

view: 视图展示,包含UIView以及UIViewController,view层是可以持有ViewModel的.
viewModel:视图适配器,暴露属性与view元素显示内容或者元素状态一一对应,一般情况下viewModel暴露的属性建议是readOnly的,viewModel层是可以持有Model的.
Model:数据模型与持久化抽象模型
binder:MVVM的灵魂,它最主要的作用是在view和viewModel之间做了双向数据绑定,如果没有binder,那么它与mvc的差异不是很大
(运用get方法中的didset方法做值的改变)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容