您的位置:首页 > Web前端 > React

reactivecocoa框架 、MVC 和 MVVM 的理解

2017-08-22 17:48 351 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: