几种编程思想(链式编程、响应式编程、函数式编程)

来源:互联网 发布:mac os x 10.6.3升级 编辑:程序博客网 时间:2024/05/21 07:02

1、链式编程,主要通过点‘.’来连接不同的函数调用
iOS上实现链式编程比较好的框架就是Masonry,通过查看Masonry源码,我们发现,每一个函数返回类型都是一个Block变量,然后Block变量中返回的内容就是当前对象本身。这样来实现通过点调用,直接上实例,实现一个简单的计算器

/** 加法 */- (Calculator * (^)(CGFloat num))add {    return ^id(CGFloat num) {        result += num;        return self;    };}/** 减法 */- (Calculator * (^)(CGFloat num))sub {    return ^id(CGFloat num) {        result -= num;        return self;    };}

demo:

    Calculator *cal = [[Calculator alloc] init];    cal.result = 0.0;    cal.add(5).add(3);    NSLog(@"%f", cal.result);

运算结果

2017-09-11 16:08:16.099 iOSCal[58230:1582453] 8.000000

通过上面的调用方式,不难发现,链式编程可以把对同一个实例对象同时调用N次方法。代码的可读性更好。
2、响应式编程
业内经典的实例就是ReactiveCocoa,它都敢叫Cocoa,足以说明它的强大之处,事实上,它就是KVO的一个灵活展示。不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。是把操作尽量写成一系列嵌套的函数或者方法调用。
3、函数式编程
这个也是iOS最常用的,类似于AF的网络回调,这里就不细究了。

原创粉丝点击