mvvm

MVVM是认为Controller做了太多数据加工的事情,所以MVVM把 数据加工 的任务从Controller中解放了出来,使得Controller只需要专注于数据调配的工作,ViewModel则去负责数据加工并通过通知机制让View响应ViewModel的改变

不用ReactiveCocoa也能MVVM,用ReactiveCocoa能更好地体现MVVM的精髓。前面我举到的例子只是数据从API到View的方向,View的操作也会产生"数据",只不过这里的"数据"更多的是体现在表达用户的操作上,比如输入了什么内容,那么数据就是text、选择了哪个cell,那么数据就是indexPath。 那么在数据从view走向API或者Controller的方向上 就是ReactiveCocoa发挥的地方。

ViewModel本质上算是Model层,View并不适合直接持有ViewModel

我们知道,ViewModel本质上算是Model层(因为是胖Model里面分出来的一部分), 所以View并不适合直接持有ViewModel ,那么View一旦产生数据了怎么办?扔信号扔给ViewModel,用谁扔?ReactiveCocoa。

View <-> C <-> ViewModel <-> Model,严格来说MVVM其实是MVCVM

mvvm

你可能感兴趣的:(mvvm)