函数式编程、链式编程、响应式编程

2019-06-13  本文已影响0人  皮皮蟹pipixie

函数式编程

函数应该是纯粹的,是绝对安全的,过程为: 输入 => 执行 => 结果。
函数应满足如下条件:
1.不能修改传递给函数的变量!
2.不能修改全局变量!
3.对于同样的输入参数,返回值总是相同的!

// 如以下方法,入参不会被改变;不涉及全局变量;同样的入参,返回值一样
func square(x: Int) -> Int {
    return x*x;
}

链式编程

链式编程可以把对同一个实例对象同时调用N次方法。代码的可读性更好。 比较有名的第三方库:OC的Masonry、Swift的SnapKit。

    //未处理代码
    override func viewDidLoad() {
        super.viewDidLoad()
        self.method1()
        self.method2()
        self.method3()
        self.method4()
    }
    
    func method1() {
        print("method1")
    }
    
    func method2() {
        print("method2")
    }
    
    func method3() {
        print("method3")
    }
    
    func method4() {
        print("method4")
    }
    // 链式处理后代码
    override func viewDidLoad() {
        super.viewDidLoad()
        _ = self.method1().method2().method3().method4()
    }
    
    func method1() -> LineViewController {
        print("method1")
        return self
    }
    
    func method2() -> LineViewController {
        print("method2")
        return self
    }
    
    func method3() -> LineViewController {
        print("method3")
        return self
    }
    
    func method4() -> LineViewController {
        print("method4")
        return self
    }

响应式编程

最大的特点就是不需要考虑调用顺序,只需要知道考虑结果。先监听事件,当事件发生时,再触发相应的操作。事件可以被等待,可以触发过程,也可以触发其它事件。
比较有名的第三方库:OC的ReactiveCocoa,Swift的RxSwift,关于这两个库的使用,以后会出相应文章,暂且不提。

上一篇下一篇

猜你喜欢

热点阅读