链式编程思想:
是将多个操作(多行代码)通过点号链接在一起成为一句代码,使代码可读性好。a(1).b(2).c()3;
链式编程特点:方法的返回值使block或者自身,如果是block,block必须有返回值(自身),block参数(需要操作的值);
代表:masonry框架;
响应式编程:
不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流;
代表:KVO运用
KVO的底层实现:
KVO的本质是监听一个对象有没有调用set方法;
1.自定义需要监听类的子类
2.重写setName,在内部回复父类做法,通知观察者;
3.如何让外界调用自定义子类的方法?修改当前对象的isa指针,指向自定义的子类;
函数编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。
函数式编程本质:就是往方法中传入block,方法中嵌套block,把代码聚合起来管理;
函数式编程特点:每个函数必须有返回值(对象本身),把函数或者block当做参数;
代表:ReactiveCocoa;