swift--函数响应式编程思想

接下来一段时间项目要完全转型swift,在真正做项目之前先了解了一些swift基本语法,也做了一些小demo,整体感受很不错。本篇会简单介绍下函数响应式编程思想

首先介绍下我们开发中常用的一些编程思想

1.面向过程编程&面向对象编程

在实际的编程中有两种应用比较广泛的思想,面向过程和面向对象。
区别:
面向过程注重的是通过代码一步步实现业务逻辑.
面向对象更注重的是将编程过程中的属性和方法分离,使用构造函数创建相应的对象,并且添加原型方法实现相同的编程业务逻辑。

2.链式编程思想

通过.语法将多个操作或者多行代码链接成一句话,可读性强。
必须两个常用的第三方库:
OC中的masnory

[_testView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.equalTo(self.view);
        make.top.equalTo(self.view).offset(topOffset);
        make.height.mas_equalTo(0);
    }];

Swift中的SnapKit

timeLabel.snp.makeConstraints { (make) in
            make.left.equalTo(self).offset(10)
            make.bottom.equalTo(self).offset(-10)
            make.size.equalTo(CGSize(width: 100, height: 20))
        }

3.函数式编程

函数式编程是种编程方式,它将电脑运算视为函数的计算。
和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。
和过程化编程相比,函数式编程里函数的计算可随时调用。

操作尽量写成一系列嵌套的函数或者方法调用。

举个简单的例子,y = f(x);然后我们再另x = f(x)
那么我们可以通过嵌套得出 y = f(f(x));

当然我们也可以在oc中通过block回调来做一些更方便的事情,使代码更加容易管理。

4.响应式编程

响应式编程的关键在于:将异步可观察序列对象模型化。
不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。

例如OC中的KVO,我们可以监听一些对象的某些属性,然后do Something.

函数响应式编程

函数响应式编程的有诸多好处。


函数响应式编程.png

比如我们要实现一个小案例,搜索输入框实时传出text值,我们如果用RxSwift实现,会方便很多。

self.textFiled.rx.text.orEmpty
            .subscribe(onNext: { (text) in
               print(text)
            })
            .disposed(by: disposeBag)

RxSwift

下篇将会介绍关于RxSwift基本用法
swift-RxSwift简单使用(一)

你可能感兴趣的:(swift--函数响应式编程思想)