ReactiveCocoa框架菜鸟入门(二)——MVVM架构与ReactiveCocoa框
MVC = Massive View Controller ?有笑话称MVC为重量级的试图控制器。仔细一想,确实存在这个问题。以UITableViewController和UITableView举个例子。 MVC的目的与不足最初我们希望,能够把视图、模型分离开来,并用一个视图控制器去管理两者。然而,理想很丰满,现实很骨感。实际编程时,遇到种种奇奇怪怪的情况。
要知道,视图控制器,是用来管理视图的。让它处理这些乱七八糟的逻辑,是不是显得太臃肿了,管了太多自己不应该负责的事情。 新的设计结构——MVVM简单来说。MVVM就是一个经过优化的MVC,这意味着它可以兼容,也本质上还是一个MVC结构。 以一个简单的链状结构表示MVVM架构就是 ReactiveCocoa是何方神圣?以C语言代码举个例子 int a = 1;
int b = 2;
int c = a + b;
printf("c = %d",c);
显然输出结果是“c = 3”。 int a = 1;
int b = 2;
int c = a + b;
a++;
printf("c = %d",c);
显然输出结果依然是“c = 3”。 ReactiveCocoa框架有多强?简单来说,试想一下:一个电路中有电源、开关,还有若干个小灯泡串联在一起。断开开关,所有的灯泡直接熄灭,多么简单的一件事!因为所有灯泡的亮暗直接依赖于开关的状态。而十个人居住在十个房间里,某个人起床时必须挨个通知其他九人:“我起床了”。What the huck? 举一个实际开发的例子。假设有一个注册界面,只有当输入的用户名密码满足某种逻辑的时候,注册按钮才会变为可用状态。通常我们需要实现文本框的代理函数,对于每一次文字变动,执行判断函数再去修改按钮的状态。 在ReactiveCocoa这种动态的、响应式框架下,我们要做的,就是把button的enabled属性和username.isValid && password.isValid绑定起来就可以了。 这样的逻辑实在是太棒了,在下一章中,我们一起探索ReactiveCocoa框架的实际使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |