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

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的网络回调,这里就不细究了。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值