设计模式MVVM的由来
众所周知,面向对象,是由面向过程演变而来,于是有了设计模式。客服端编程离不开MVC(model-view-controller)设计模式,由于复杂页面(如微博列表,存在用户表头,内容Cell存在多态及变高,多种操作交杂的情况) 把页面展示,及操作都放在ViewController里进行管理,势必造成ViewController非常庞大,难以阅读及驾驭,从而导致编程效率下降。于是衍生出MVC的很多变种,主要有
MVCS(view<->controller<->store<-model)/
MVP(model<->presenter<->conterller<->view),
MVVM(view<->controller<->viewModel<->model)
所以Controller在MVVM中,一方面负责View和ViewModel之间的绑定,另一方面也负责常规的UI逻辑处理。通常较复杂页面使用MVVM,比如变高,多态的列表。
用RAC实现MVVM架构里的登录页面
实现分析
- 1、ViewModel使用组合信号订阅组合信号
- 2、Controller绑定视图和相关属性,发送命令
- 3、相关代码demo
剖析MVVM
从MVC到MVVM(瀑布流)
MVVM实际上就是将业务逻辑从C中抽离,C只负责添加V,并把让VM处理视图相关显示数据,是给C瘦身。
可以查看对比瀑布流的MVC和MVVM模式的不同demo,具体领会。