MVVM的核心是将原来Controller中的视图逻辑、视图管理、视数中间层的功能剥离出来,形成单独的模块;
大部分功能与视图相关、少部分与数据相关;
视图逻辑和业务逻辑不通;
解决的问题:UIViewController和UIView耦合得十分紧密。
但是除了数据绑定,MVVM还有另一个问题。把业务逻辑放到ViewModel中,虽然能够为UIViewController减负,但是只是把问题转移了,最终ViewModel还是会变成另一个Massive ViewModel。
其实数据绑定只是一种为了减少胶水代码的技术实现方式,MVVM的设计并没有要求必须要使用数据绑定,你也完全可以使用protocol的方式来将ViewModel的变化传递给View,让数据流向更清晰。MVVM的关键是将View进行了抽象,从而实现View和Model的解耦。