RAC模式的学习(一)

本文介绍了ReactiveCocoa(RAC)框架,它是iOS平台上的FRP(函数响应式编程)实现。通过RACSignal表示的数据流可以统一处理Delegate、Notification、Block和KVO等事件,简化复杂度。文中以水龙头为例解释了信号的概念,并展示了如何观察和过滤信号,以及如何根据信号状态控制UI元素,如登录按钮的启用状态。RAC提供了一种统一的方式来处理值随时间变化的各种场景,包括KVO、UI事件、网络请求和异步任务。
摘要由CSDN通过智能技术生成

通过朋友介绍,我简单的知道了APP构架新的设计模式。原来一直在用比较传统的MVC构架,能比较方便的使程序达到高内聚低耦合的效果,但是没有朋友说的RAC模式,采用MVVM构架,能够使用黑盒测试,听起来更加符合一些比较大的项目的合作开发。今天开始学习RAC模式:

Native app有很大一部分的时间是在等待事件发生,然后响应事件,比如等待网络请求完成,等待用户的操作,等待某些状态值的改变等等,等这些事件发生后,再做进一步处理。 但是这些等待和响应,并没有一个统一的处理方式。Delegate, Notification, Block, KVO, 常常会不知道该用哪个最合适。有时需要chain或者compose某几个事件,就需要多个状态变量,而状态变量一多,复杂度也就上来了。ReactiveCocoa能够达到统一的处理。

ReactiveCocoa是github去年开源的一个项目,是在iOS平台上对FRP的实现。FRP的核心是信号,信号在Reactivecocoa(以下简称RAC)中是通过RACSignal来表示的,信号是数据流,可以被绑定和传递。

可以把信号想想成水龙头,只不过里面不是水,而是玻璃球(value),直径和水管的内径一样,这样就能保证玻璃球是依次排列,不会出现并排的情况(数据都是线性处理的,不会出现并发情况)。水龙头的开关默认是关的,除非有了接收方(subscriber),才会打开。这样只要有新的玻璃球进来,就会自动传送给接收方。可以在水龙头上加一个过滤嘴(filter),不符合的不让通过,也可以加一个改动装置,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值