什么是RxSwift?

    RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护


    其他语言像C#, Java 和 js 也有,Rx.NET、RxJava、RxJS


    RxSwift的目的是让让数据/事件流和异步任务能够更方便的序列化处理,能够使用swift进行响应式编程


    函数式响应编程?


    RxSwift做了什么?


    观察者模式


    什么KVO,通知, 甚至代理都是观察者模式,在设计模式中他可是一个重中之重的设计模式


    比如一个宝宝在睡觉,爸爸妈妈,爷爷奶奶总不能在那边一只看着吧?那样子太累了。他们该做啥事就做啥事呗,只要听到宝宝的哭声,他们就给宝宝喂奶就行了。这就是一个典型的观察者模式。


    宝宝是被观察者,爸爸妈妈等是观察者也称作订阅者,只要被观察者发出了某些事件比如宝宝哭声、叫声都是一个事件,通知到订阅者,订阅者们就可以做相应的处理工作


    在我们iOS开发中, 很多的事件监听都是通过观察者设计模式的


    RxSwift做了什么


    RxSwift把我们程序中每一个操作都看成一个事件


    比如一个TextField中的文本改变,一个按钮被点击,或者一个网络请求结束等,每一个事件源就可以看成一个管道,也就是sequence


    比如TextField,当我们改变里面的文本的时候,这个TextField就会不断的发出事件,从他的这个sequence中不断的流出,我们只需要监听这个sequence,每流出一个事件就做相应的处理。


    同理,Button也是一个sequence,每点击一次就流出一个事件。


    Button事件流


    理解Observable&Observer


    理解Observable&Observer


    RxSwift的优点


    Composable 可组合,在设计模式中有一种模式叫做组合模式,你可以方便的用不同的组合实现不同的类


    Reusable 代码可重用,原因很简单,对应RxSwift,就是一堆Obserable


    Declarative 响应式的,因为状态不可变,只有数据变化


    Understandable and concise 简洁,容易理解。


    Stable 稳定,因为RxSwift写出的代码,单元测试时分方便


    Less stateful “无”状态性,因为对于响应式编程,你的应用程序就是一堆数据流


    Without leaks 没有泄漏,因为资源管理非常简单


    使用心得


    时刻牢记,使用RxSwift,尽量把所有的任务(可以理解为方法)抽象成Obserable(序列)和Obserable创建者,监听者


    能用数据绑定的(bindTo和Driver)的就不要手动绑定


    一定要熟练RxSwift提供的操作符,要会自定义操作符


宁波皮肤美容http://www.lyxcl.org/pfmrz/

你可能感兴趣的:(什么是RxSwift?)