iOS中利用链式编程思想实现计算器

作品链接:http://www.jianshu.com/users/1e0f5e6f73f6/top_articles

1.声明加减乘除和结果的方法

@property (nonatomic, assign) int result;

- (PHCalculateManager *(^)(int))add;
- (PHCalculateManager *(^)(int))minus;
- (PHCalculateManager *(^)(int))multiply;
- (PHCalculateManager *(^)(int))divide;

2.实现加减乘除的方法

- (PHCalculateManager *(^)(int))add
{
    return ^(int value){
        _result += value;
        return self;
    };
}
- (PHCalculateManager *(^)(int))minus
{
    return ^(int value){
        _result -= value;
        return self;
    };
}

- (PHCalculateManager *(^)(int))multiply
{
    return ^(int value){
        _result *= value;
        return self;
    };

}

- (PHCalculateManager *(^)(int))divide
{
    return ^(int value){
        _result /= value;
        return self;
    };

}

3.创建计算管理者

  • 把所有的计算代码放在这里
+ (int)PH_makeCalculate:(void (^)(PHCalculateManager *))block
{
    // 创建计算管理者
    PHCalculateManager *calculateManager = [[PHCalculateManager alloc] init];
    // 执行计算
    block(calculateManager);

    return calculateManager.result;
}

4.调用计算管理者

- (void)viewDidLoad {
    [super viewDidLoad];
int result = [NSObject PH_makeCalculate:^(PHCalculateManager *calculateManager) {

        calculateManager.add(10).minus(2).multiply(5).divide(4);
    }];

    NSLog(@"%d",result);

}

你可能感兴趣的:(iOS中利用链式编程思想实现计算器)