说到MVVM,就要先说MVC,M数据管理者,为VC提供数据,为VC存储数据提供接口;C管理ViewController的生命周期,负责生成所有的View实例,并放入ViewControlle,监听来自View与业务有关的事件,通过与Model合作,完成对应事件的业务;V响应与业务无关的事件
MVVM是对胖模型的拆分,ViewModel相比较于MVC,新引入的视图模型,是网络请求、业务逻辑、视图显示逻辑等代码存放的地方,任何视图本身的引用都不应放在VM中,也就是说VM中不要引入UIKit.h
这就解决了VC臃肿的问题,将逻辑代码、网络请求都写在VM中,又由于VM中包含了所有的展示逻辑而且不会引用V