iOS的函数响应型编程
译者寄语
自从Github团队2013年开源出ReactiveCocoa这个著名的第三方库之后,各方反应强烈,AFNetworking的作者Mattt Thompson更是高呼这是一场革命,译者kevinHM一直都很关注业内最新的技术动态及各种技术信息,这个框架出来之后也找了些资料研究,但都比较浅,译者表示自己没有研究好这部分内容也不敢贸然在商业级App里尝试,而微博上、QQ群里各种社交媒体上,你总能听到程序员们偶然会讨论MVVM与RAC等,没有多的书面资 料可以参考,当看到Ash Furrow的 FunctionalReactiveProgrammingOniOS 时,译者觉得这本书介绍ReactiveCocoa时比起其他我能找到的资料来说算是较好的了(他本人开源的项目” FunctionalReactivePixels”意义一样大),就想着把他翻译出来给大家参考,同时自己也能从中学习。
所以这本书的目的就是为了普及ReactiveCocoa,让更多的开发者能够接受ReactiveCocoa这种方式,让大家更优雅地在iOS中实现MVVM架构。
ReactiveCocoa简介
ReactiveCocoa(简称为RAC),RAC 是一个 iOS 中的函数式响应式编程框架,是Github 在开发 GitHub for Mac 过程中的一个副产品。Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。RAC提供了一系列用来组合和转换值流的 API,为事件的处理定义了一个标准接口,大大方便了开发者去管理各种事件的处理,结果就是开发者能从关注业务实现的细节上脱身,转变为开发者只需要关心业务本身就好了
ReactiveCocoa的作用
- 在我们iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。
- 比如按钮的点击使用action,ScrollView滚动使用delegate,属性值改变使用KVO等系统提供的方式。
- 其实这些事件,都可以通过RAC处理
- ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中高聚合,低耦合的思想。
ReactiveCocoa编程思想
ReactiveCocoa结合了几种编程风格:
函数式编程(Functional Programming):使用高阶函数,例如函数用其他函数作为参数。
响应式编程(Reactive Programming):关注于数据流和变化传播。
所以,你可能听说过ReactiveCocoa被描述为函数响应式编程(FRP)框架。
以后使用RAC解决问题,就不需要考虑调用顺序,直接考虑结果,把每一次操作都写成一系列嵌套的方法中,使代码高聚合,方便管理。
在线阅读
W3Cschool https://www.w3cschool.cn/ios_functional_reactive_program
版权信息
本书译者为: kevinHM 翻译自 https://leanpub.com/iosfrp
经由译者授权转载至W3Cschool.cn