MVVM和RAC介绍

一、ReactiveCocoa
RAC完全颠覆了传统的开发模式,使消息传递回调等机制复杂问题简单化,初始化与回调放在一起,使整个逻辑很具条理化。

ReactiveCocoa结合了一些编程模式:
1.函数式编程:利用高阶函数,即将函数作为其它函数的参数。
2.响应式编程:关注于数据流及变化的传播。
基于以上两点,ReactiveCocoa被当成是函数响应编程(Functional Reactive Programming, FRP)框架。

二、MVVM
在MVVM中View和ViewController通过视图模型ViewModel正式联系在一起。 ViewModel是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样代码的好地方。 ViewModel不引用UIKit。 展示逻辑放在了ViewModel中,比如Model的值映射到一个格式化字符串。实际上就是把原来ViewController做的一些事情放到了ViewModel中进行,为ViewController减负。

在我看来,如果页面逻辑比较简单,比如实现一个列表的逻辑,MVC就足矣。没必要使用相对复杂的逻辑如MVVM或MVP。

三、MVVM+RAC
ReactiveCocoa所扮演的角色:进行ViewModel连接”粘合”工作

1.例如在ViewController中给ViewModel的某个属性绑定信号,实时监听属性的变化。每当属性发生变化,ViewModel中就会发生一个信号出来,ViewController中对应的属性订阅这个信号,在订阅到这个信号的回调中执行后面的逻辑。

2.利用RACCommand执行execute方法来返回一个signal,订阅这个signal,这个signal中可以利用 initWithSignalBlock方法返回一个经过处理的signal,比如要把网络请求的数据返回并且解析成模型数组,都可以放在这个block中进行处理。

参考:https://github.com/MikeZhangpy/RAC-MVVMTest

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值