Day14 Combine 01 - 简介

Apple 在 WWDC 2019 介绍了全新的 SwiftUI,一个以宣告式结合响应式编程 (FRP,Functional Reactive Programming )的 UI 设计工具,而与SwiftUI配套发布的响应式编程框架Combine也提供了开发者更优美的开发方式

在介绍Combine 之前,我们来简要介绍一下两个概念:

  1. 观察者模式

    观察者模式(Observer Pattern)是一种设计模式,用来描述一对多关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应,这两类分别被称为被观察目标(Observable)观察者(Observer),也就是说一个观察目标可以对应多个观察者,观察者可以订阅它们感兴趣的内容,当观察目标内容改变时,它会向这些观察者广播通知(调用Observer的更新方法)。有一点需要说明的是,观察者之间彼此时互相独立的,也并不知道对方的存在

  2. 响应式编程

    响应式编程(Reactive Programming)是一种程序设计思想,为了可以在程序语言中可以很方便地表达静态或动态的资料流,而相关的计算模型会自动将变化的值通过资料流进行传播,相对应的也有面向过程编程、面向对象编程、函数式编程等等。不同的是,响应式编程的核心是面向异步数据流和变化的

    在现在的前端世界中,我们需要处理大量的事件,既有用户的交互,也有不断的网络请求,还有来自系统或者框架的各种通知,因此也无可避免产生复杂的状态。使用响应式编程後,所有事件将成为异步的数据流,更加方便的是可以对这些数据流可以进行组合变换,最终我们只需要监听所关心的数据流的变化并做出响应即可

接下来我们来看看**Combine**:

Combine 框架提供了一个声明性的 Swift API,是 Apple 实现FRP 的框架,用於随着时间的推移处理值的变化(各种异步事件),可以使代码更加简洁、易於维护,也免除了常出现问题的嵌套闭包和回调地狱,也就是基於观察者模式和响应式编程,让我们可以处理各种异步需求

Combine 框架主要分成发布者 (Publisher)、操作/运算符 (Operator)、和订阅者 (Subscriber) 三大部分,透过这三种元件的组装,来建立各式各样的订阅关系 (Subscription)

下面几天我们会各别去做介绍


<<:  Day14-守护饼乾大作战(一)

>>:  [Day 15] Reactive Programming -Reactor(COLD VS HOT) -PART 2

自动化测试,让你上班拥有一杯咖啡的时间 | Day 7 - 如何写断言

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 在测试脚本加上断言後,当程序码有 ...

Day 05:到底有多坏?演算法的最坏情况执行时间

讨论演算法的执行时间到现在,我们只提最糟糕的情况,好像不断在强调演算法的效能可以有多差。 你可能会想...

CMoney菁英软件工程师战斗营_Week 8

来到CMoney近两个月 不到两星期就要发表我们游戏专题了 或许会有人不知道做游戏专题有什麽好处 比...

关於code signing [程序码签章] 这档事 ...

所谓的程序码签章,就是一个指一个数位的签章,在编译好的软件上签章。软件一旦被重新编译、修改,上面的签...

Day29 跟着官方文件学习Laravel-VSCode 开发PHP & Laravel

我平常使用的 IDE 是 VSCode,今天要来说说我有安装哪些外挂。 Laravel Artisa...