前不久有个人问我什么是链路式编程,今天就讲一下链路式和函数式编程。
首先我们学习链路式编程和函数式编程在我们开发的时候有什么用?
如果你想去封装一些你觉得写的很牛B的功能或代码给别人使用,还有一方面就是让你读懂一些大牛写的框架底层的代码,你都需要了解链路式编程和函数式编程。
1、举个例子Masonry框架,
make.top.equalTo(self.view).offset(40);
这种就是典型的链路式编程,可以写很长条代码,把一种设定描述的很详细。接下来我们就去了解怎么可以写一条这么长的代码。
2、先模拟简单的,有个Person类,他有run和eat的行为;如果正常情况下我们会这样写。
-(void)run{
NSLog(@"我跑了一公里“);
}
-(void) eat{
NSL(@"我和了一瓶水”);
}
在调用的时候我们会写成
[person eat];
[person run];
这样写很不灵活 ,其实完全可以一段代码表达上面的意识,并且清晰的体现出这个人先干了什么,后干了什么:
[[person eat] run];
上面的代码就可以完全表达其中的意识
具体方法
-(Person*)run{
NSLog(@"我跑了一公里“);
return self;
}
-(Person*)eat{
NSL(@"我和了一瓶水”);
return self;
}
这样我就可以一段代码调N次这两种行为了
3、现在就开始正式的将Masonry是怎么代码封装成
make.top.equalTo(self.view).offset(40);
这种格式的
首先他用了()来传参数,资深的开发人员一眼就可以看出来是用了Block作为了返回值后面的()就是执行Block的意识
我们还是拿上面的例子举例
这样我们就可以连续调用方法,先后顺序又清晰,这样就可以简单明了的描述一些事物的特征