MVC:Model、View、Controller
M:数据层,V:视图层,C:负责数据和视图交互的控制层
他们是如何工作的?
举例子:C是老板,M是一堆文件,V是展示这些文件的展台,老板( C )负责自己处理这些文件(M)如何展示到展台(V)
MVVM:Model、View、ViewModel。
M:数据层,V:视图层,VM:数据视图交互的工具(封装了交互的规,方法)
举例子:C还是老板(不过现在角色不是很重要,只负责发布命令),M是一堆文件,V是展示这些文件的展台,老板觉得自己展示很累,就使用了一个工具(VM),这个工具很强大,封装了各种规则来展示文件(M),而且只要文件改变,VM会自动把文件(M)更新到展台(V)上面。
总结:在MVVM中,Controller不再像MVC那样直接持有Model了。想象Controller是一个Boss,数据是一堆文件(Model),如果现在是MVC,那么数据解析(比如整理文件)需要由Boss亲自完成,然而实际上Boss需要的仅仅是整理好的文件而不是那一堆乱七八糟的整理前的文件。所以Boss招聘了一个秘书,现在Boss就不再需要管理原始数据(整理之前的文件)了,他只需要去找秘书:你帮我把文件整理好后给我。