WWDC 2019提供了基于Swift的Combine框架,对于事件响应来说很不错,最近跟随项目学习,记录一下内容。
对于响应问题,从设计角度上来说,代理、通知和观察者模式都可以实现。
代理:实现一对一模式,对于需要多处需要响应的地方不太合适。
通知:通知可以实现一对多的消息传递,多处监听会有一定的开销。
观察者模式:用来描述一对多关系的一种设计模式。当被观察到内容发送改变时,它会向观察者们发送广播通知。观察者之间是相互独立的,不知道对方的存在。
响应式编程:它是一种编程思想,它的核心是面向异步数据流和变化的。当我们需要处理大量的事件响应,例如用户交互,不断的网络请求,系统或者框架的各种通知时,可能会让我们的项目变得十分复杂不好维护。使用响应式编程,可以将事件变成异步数据流,可以将这些数据流进行组合变换,我们只需要监听需要关心的数据流变化并做出响应即可。
什么是Combine
Combine可以让代码更加简洁、易于维护,避免很多嵌套闭包和回调。Combine是ReactiveX(Reactive Extensions,简称Rx)的实现,这个实现是基于观察者模式的。
Combine是基于范型实现的,是类型安全的。它可以无缝接入现有工程,用来处理Target/Action、Notification、KVO、callback/closure以及各种异步网络请求。
组成部分
- 发布者 Publisher
- 订阅者 Subscriber
- 操作符 Operator
网友评论