Apple 在 WWDC 2019 介绍了全新的 SwiftUI,一个以宣告式结合响应式编程 (FRP,Functional Reactive Programming )的 UI 设计工具,而与SwiftUI
配套发布的响应式编程框架Combine
也提供了开发者更优美的开发方式
在介绍Combine 之前,我们来简要介绍一下两个概念:
观察者模式
观察者模式(Observer Pattern)是一种设计模式,用来描述一对多关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应,这两类分别被称为被观察目标(Observable)和观察者(Observer),也就是说一个观察目标可以对应多个观察者,观察者可以订阅它们感兴趣的内容,当观察目标内容改变时,它会向这些观察者广播通知(调用Observer的更新方法)。有一点需要说明的是,观察者之间彼此时互相独立的,也并不知道对方的存在
响应式编程
响应式编程(Reactive Programming)是一种程序设计思想,为了可以在程序语言中可以很方便地表达静态或动态的资料流,而相关的计算模型会自动将变化的值通过资料流进行传播,相对应的也有面向过程编程、面向对象编程、函数式编程等等。不同的是,响应式编程的核心是面向异步数据流和变化的。
在现在的前端世界中,我们需要处理大量的事件,既有用户的交互,也有不断的网络请求,还有来自系统或者框架的各种通知,因此也无可避免产生复杂的状态。使用响应式编程後,所有事件将成为异步的数据流,更加方便的是可以对这些数据流可以进行组合变换,最终我们只需要监听所关心的数据流的变化并做出响应即可
接下来我们来看看**Combine**:
Combine 框架提供了一个声明性的 Swift API,是 Apple 实现FRP 的框架,用於随着时间的推移处理值的变化(各种异步事件),可以使代码更加简洁、易於维护,也免除了常出现问题的嵌套闭包和回调地狱,也就是基於观察者模式和响应式编程,让我们可以处理各种异步需求
Combine 框架主要分成发布者 (Publisher)、操作/运算符 (Operator)、和订阅者 (Subscriber) 三大部分,透过这三种元件的组装,来建立各式各样的订阅关系 (Subscription)
下面几天我们会各别去做介绍
>>: [Day 15] Reactive Programming -Reactor(COLD VS HOT) -PART 2
此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 在测试脚本加上断言後,当程序码有 ...
讨论演算法的执行时间到现在,我们只提最糟糕的情况,好像不断在强调演算法的效能可以有多差。 你可能会想...
来到CMoney近两个月 不到两星期就要发表我们游戏专题了 或许会有人不知道做游戏专题有什麽好处 比...
所谓的程序码签章,就是一个指一个数位的签章,在编译好的软件上签章。软件一旦被重新编译、修改,上面的签...
我平常使用的 IDE 是 VSCode,今天要来说说我有安装哪些外挂。 Laravel Artisa...