iOS之编程思想

链式编程思想

链式编程思想:下一级的block给上一级使用编程

   思想:把须要作的事情封装到block,给外接提供一个block方法框架

   特色:方法返回值须要是block。block参数:放须要操做的内容,block返回值:方法调用者。都是点语法。函数式编程

   表明:masonry框架函数

   http://my.oschina.net/u/2346786/blog/619655atom

massory:
[view mas_makeConstraints:^(MASConstraintMaker *make){
    make.left.top.equalTo(@10);
    make.right.bottom.equalTo(@(-10));
}

====================

void(^block)(MASConstraintMaker *make) = ^(MASConstraintMaker *make){
    make.left.top.equalTo(@10);
    make.right.bottom.equalTo(@(-10));
};
[view mas_makeConstraints:block];
//
//
//
//


计算器Demo:
#import <Foundation/Foundation.h>
@interface CaculatorMaker : NSObject
@property (assign, nonatomic) int reslut;

- (CaculatorMaker *(^)(int num))add;
- (CaculatorMaker *(^)(int num))multy;
@end

#import "CaculatorMaker.h"
@implementation CaculatorMaker

- (CaculatorMaker *(^)(int num))add
{
    return ^(int num){
      
        _reslut += num;
        
        return  self;
    };
}
- (CaculatorMaker *(^)(int num))multy
{
    return ^(int num){
      
        _reslut *= num;
        
        return self;
    };
}
@end

#import <Foundation/Foundation.h>
#import "CaculatorMaker.h"
@interface NSObject (Caculator)

//计算机都使用这个方法,一调用这个方法就返回结果
+ (int)makeCaculator:(void(^)(CaculatorMaker *))block;
@end

#import "NSObject+Caculator.h"
@implementation NSObject (Caculator)

+ (int)makeCaculator:(void(^)(CaculatorMaker *))block
{
    //建立计算对象
    CaculatorMaker *maker = [[CaculatorMaker alloc] init];
    
    //计算
    block(maker);
    return maker.reslut;
}
@end


- (void)viewDidLoad {
    [super viewDidLoad];
    
    int result = [NSObject makeCaculator:^(CaculatorMaker *maker) {
        
        //把全部的计算代码封装到这里
        maker.add(10).add(20).multy(3);
    }];
    
    NSLog(@"%d",result);
}


响应式编程思想

原理:不须要考虑调用顺序,只须要考虑结果,相似于蝴蝶效应,产生一个事件,会影响不少东西,这些事件像刘易阳的传播出去,而后影响结果。
spa

表明:KVO的应用.net

http://my.oschina.net/u/2346786/admin/edit-blog?blog=538194code


函数式编程思想

特色:每一个方法必须有返回值(对象自己)。把函数或者Block当作参数.block参数(须要操做的值)block返回值(操做结果)orm

表明:ReactiveCocoa对象

http://my.oschina.net/u/2346786/blog/614316

相关文章
相关标签/搜索