UniRx---源码阅读提示 OperatorObservableBase OperatorObserverBase

create型的Observable(用户自定义) 需要缓存一个fun<Iobserver<T>,IDisposible>  用来决定subscribe时的行为(包括返回一个注销器)
而内置的Obserable 不需要缓存这个回调是因为 注册时候的逻辑是固定的 所以不需要observable创建者提供自定义的注册行为 

有些observable继承的一个基类:OperatorObservableBase
是提供外界subscribe的模板方法 具体的注册实现交由子类的SubscribeCore完成 
传递的参数一个是当前要注册的observer 一个是注销器引用,subscribeCore的返回会给此注销器赋值(有点绕...)
并由模板方法返回给高层调用者
这个模板方法还指定了注销器的类型SingleAssignmentDisposable  
 
有些observer继承的一个基类:OperatorObserverBase
这个类主要是对observer进行一个封装 使其在调用oncomplete的时候 自动调用dispose
并在异常时能够捕获异常 因此需要缓存一个注销器引用 这也是subscribeCore需要注销器引用的原因

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值