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

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

推荐阅读更多精彩内容