RxCocoa APIS
- NSObject
Observe
|
|
Observe
|
|
Observable 。 Observable
是观察者模式中被观察的对象,相当于一个事件序列 (GeneratorType) ,会向订阅者发送新产生的事件信息。事件信息分为三种:
- .Next(value) 表示新的事件数据。
- .Completed 表示事件序列的完结。
- .Error 同样表示完结,但是代表异常导致的完结。
这里引用GOF的<设计模式-可复用面向对象软件的基础>
Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题, 以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”.
模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定 而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
在上一篇 我们介绍了类设计原则(SOLID原则),
本篇将为您介绍常见的23种设计模式
在GOF的《设计模式:可复用面向对象软件的基础》一书中 作者根据设计模式在粒度和抽象层次的不同将设计模式如下划分
| 创 建 型 | 结 构 型 | 行 为 型 | |
|---|---|---|---|
| 类 | Factory Method | Adapter(类) | Interpreter Template Method |
| 对象 | Abstract Factory Builder Prototype Singleton |
Adapter(对象) Bridge Composite Decorator Facade Flyweight Proxy |
Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor |
在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的 实例化延迟到其子类。
工厂方法模式是在简单工厂模式的基础上,对“工厂”添加了一个抽象层。将工厂共同的动作抽象出来,作为抽象类,而具体的行为由子类本身去实现,让子类去决定生产什么样的产品。
Swift已经面世一年半,而它的2.0版本也随着今年的WWDC2015一同面世. 两周前的Swift开源也让这个语言成为github最火的面向对象语言之一.Swift 作为一门新语言的命运会如何?根据近来针对 Apple 公司及整个生态圈的观察,Swift会成为Apple和这个生态圈的主力语言
ReactiveCocoa 之 MVVM 模式
模型(M):保存视图数据。
视图+控制器(V):包含View和Controller, view用于展示内容 controller 用于绑定View和ViewModel
视图模型(VM):处理展示的业务逻辑,包括按钮的点击,数据的请求和解析等等(网络和数据处理也可单独另开一个service层来处理)。
MVC ,MVCS ,MVVM 简单比较
mvcs 较mvc 将网络和数据从controller里剥离.
mvvm 较mvc 将事件的处理也从controller里面剥离出来
共同的作用都是让controller 瘦身.解耦.
ReactiveCocoa 操作之信号处理
flattenMap作用:把源信号的内容映射成一个新的信号,信号可以是任意类型。
|
|
Map作用:把源信号的值映射成一个新的值
|
|
FlatternMap和Map的区别
1.FlatternMap中的Block返回信号。
2.Map中的Block返回对象。
3.开发中,如果信号发出的值不是信号,映射一般使用Map
4.开发中,如果信号发出的值是信号,映射一般使用FlatternMap
ReactiveCocoa 初探
ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。
在我们iOS开发过程中,经常会响应某些事件来处理某些业务逻辑,例如按钮的点击,上下拉刷新,网络请求,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。其实这些事件,都可以通过RAC处理,ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中高聚合,低耦合的思想。