Combine进化之路1——前言

WWDC 2019提供了基于Swift的Combine框架,对于事件响应来说很不错,最近跟随项目学习,记录一下内容。

对于响应问题,从设计角度上来说,代理、通知和观察者模式都可以实现。
代理:实现一对一模式,对于需要多处需要响应的地方不太合适。
通知:通知可以实现一对多的消息传递,多处监听会有一定的开销。
观察者模式:用来描述一对多关系的一种设计模式。当被观察到内容发送改变时,它会向观察者们发送广播通知。观察者之间是相互独立的,不知道对方的存在。
响应式编程:它是一种编程思想,它的核心是面向异步数据流和变化的。当我们需要处理大量的事件响应,例如用户交互,不断的网络请求,系统或者框架的各种通知时,可能会让我们的项目变得十分复杂不好维护。使用响应式编程,可以将事件变成异步数据流,可以将这些数据流进行组合变换,我们只需要监听需要关心的数据流变化并做出响应即可。

什么是Combine

Combine可以让代码更加简洁、易于维护,避免很多嵌套闭包和回调。Combine是ReactiveX(Reactive Extensions,简称Rx)的实现,这个实现是基于观察者模式的。

Combine是基于范型实现的,是类型安全的。它可以无缝接入现有工程,用来处理Target/Action、Notification、KVO、callback/closure以及各种异步网络请求。

组成部分

  1. 发布者 Publisher
  2. 订阅者 Subscriber
  3. 操作符 Operator

Combine进化之路合集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在具体介绍 Combine 之前,有两个重要的概念需要简要介绍一下: 观察者模式 响应式编程 观察者模式 观察者模...
    没八阿哥的程序阅读 9,155评论 2 21
  • 响应式编程(Reactive Programming) 面向异步数据流的编程思想。业界比较知名的响应式框架是 Re...
    YungFan阅读 812评论 0 1
  • 前言 “一个随时间处理数据的声明式的 Swift API。”Combine 苹果采用的一种函数响应式编程的库,类似...
    Lcr111阅读 1,521评论 0 2
  • 发布者 Publisher 在Combine中,Publisher是观察者模式中的Observable,并且可以通...
    valiant_xin阅读 283评论 0 0
  • rxjava Rx介绍 ReactiveX的历史 ReactiveX是Reactive Extensions的缩写...
    我要离开浪浪山阅读 377评论 0 0