reactivecocoa框架 、MVC 和 MVVM 的理解

来源:互联网 发布:linux配置自动获取ip 编辑:程序博客网 时间:2024/05/16 06:04

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。

  • 用函数式编程实现,写一个加法计算器,并且加法计算器自带判断是否等于某个值.


4. RACSignal使用步骤:
 4.1.创建信号 + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> 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





原创粉丝点击