1.MVVM
ViewModel: 相比较于MVC新引入的视图模型,是视图显示逻辑、验证逻辑、网络请求等代码存放的地方。
2.RAC 结合了函数式编程和响应式编程的框架.提供了一个单一的、统一的方法去处理异步的行为,包括delegate方法,blocks回调,target-action机制,notifications和KVO.。同一个业务逻辑终于可以在同一块代码里完成了,将UI事件,逻辑处理,文件或数据库操作,异步网络请求,UI结果显示,这一大套统统用函数式编程的思路嵌套起来。
1 面向过程:处理事情以过程为核心,一步一步的实现。
3.2 面向对象:万物皆对象
3.3 链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)
链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)
代表:masonry框架。
模仿masonry,写一个加法计算器,练习链式编程思想。
3.4 响应式编程思想:不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。
代表:KVO运用。
3.5 函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。
函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)
代表:ReactiveCocoa。
用函数式编程实现,写一个加法计算器,并且加法计算器自带判断是否等于某个值.
- RACSignal使用步骤:
4.1.创建信号 + (RACSignal )createSignal:(RACDisposable (^)(id subscriber))didSubscribe
4.2.订阅信号,才会激活信号. - (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock
4.3.发送信号 - (void)sendNext:(id)value
5.RACCommand使用步骤:
5.1.创建命令 initWithSignalBlock:(RACSignal * (^)(id input))signalBlock
5.2.在signalBlock中,创建RACSignal,并且作为signalBlock的返回值
5.3.执行命令 - (RACSignal *)execute:(id)input