链式编程

作者: 文刂Rn | 来源:发表于2017-06-15 09:55 被阅读13次

链式编程的特点

链式编程通过点语法连续调用函数,将一系列代码执行动作串联起来,让代码更加简洁, 可读性更强,不用单独一个一个的执行。

Objective-C和Swift代码写法上有些差别

Objective-C
对象方法的返回值是一个Block,在返回Block函数中做相应的逻辑处理并返回当前对象

Swift
对象方法的返回值是当前对象,需要操作的值以形参传入

OC版

CaculateMake 具体方法类

####CaculateMake.h 
#import <UIKit/UIKit.h>

@interface CaculateMake : NSObject

/** 结果 */
@property (nonatomic, assign) CGFloat result;

- (CaculateMake *(^)(CGFloat))add;

- (CaculateMake *(^)(CGFloat))sub;

@end


####CaculateMake.m
#import "CaculateMake.h"

@implementation CaculateMake

- (CaculateMake *(^)(CGFloat))add {
    return ^CaculateMake *(CGFloat value) {
        self.result += value;
        return self;
    };
}

- (CaculateMake *(^)(CGFloat))sub {
    return ^CaculateMake *(CGFloat value) {
        self.result -= value;
        return self;
    };
}

@end

点语法调用类

#import <UIKit/UIKit.h>
#import "CaculateMake.h"

@interface Caculate : NSObject

+ (CGFloat)caculate:(void(^)(CaculateMake *make))caculateBlock;

@end

#import "Caculate.h"

@implementation Caculate

+ (CGFloat)caculate:(void (^)(CaculateMake *))caculateBlock {
    
    CaculateMake *make = [[CaculateMake alloc] init];
    caculateBlock(make);
    return make.result;
}

@end

Swift版

class CaculateMake {
    
    var result: Int = 0
    
    func add(num: Int) -> CaculateMake {
        result += num
        return self
    }
    
    
    func sub(num: Int) -> CaculateMake {
        result -= num
        return self
    }
    
}

class Caculate {
    
    static func beginCaculate(caculateBlock: (CaculateMake) -> ()) -> Int {
        let caculateMake = CaculateMake()
        caculateBlock(caculateMake)
        return caculateMake.result
    }
    
}

#### 使用
let n = Caculate.beginCaculate { (make) in
    make.add(num: 10).add(num: 20)
}

相关文章

  • jQuery 链式编程

    jQuery 链式编程 链式编程原理 链式编程代码示例 隐式迭代

  • 链式编程思想

    链式编程思想 链式编程思想

  • iOS 链式编程

    链式编程 主要介绍链式编程原理,以及如何创建链式编程 编程范式 在介绍链式编程之前,首先来了解下什么是编程范式。 ...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • 一、链式编程思想、响应式编程思想和函数式编程

    1. 链式编程思想 链式编程思想的核心就是方法的返回值必须是Block,Masonry是链式编程思想应用的代表。 ...

  • 链式编程和函数式编程的简单理解

    链式编程 此前看到SnipKit中运用了很多链式编程的代码,感觉非常好用:例如: //此段就是链式编程的典型代码m...

  • 编程思想-链式编程

    编程思想-链式编程 链式编程(链式调用)的主要表现是支持点语法结构的代码,代表库可以参照 Masonry 或 Sn...

  • 链式编程

    链式编程

  • iOS 链式编程

    之前看到 Masonry 是使用链式编程,感觉很酷,自己简单的写了一个链式编程的示例! 首先简单的来说一下链式编程...

网友评论

    本文标题:链式编程

    本文链接:https://www.haomeiwen.com/subject/sadyqxtx.html