Disposable
他是对资源清理这一步的抽象。抽象也很简单,就是一个dispose方法。
|
|
但是具体要怎么清理呢?先看看大部分disposable的基类:
|
|
可以看到基类什么也没干,ok,我们又看看具体的子类。都是继承自DisposeBase,并实现了Cancelable接口
AnonymousDisposable
代表着一个 会在销毁时执行某个action的disposable。
BinaryDisposable
将两个disposable包裹为一个,在BinaryDisposable销毁时,同时释放两个包含的disposable。
BooleanDisposable
代表一个可以检查dispose状态的disposable.
CompositeDisposavle
包裹了 一组disposables,在CompositeDisposable销毁时同时销毁所有的disposable。
RefCountDisposable
与某个disposable绑定,只有当绑定的disposable销毁时,才销毁自己。
ScheduledDisposable
让销毁操作在某个线程上执行。
SerialDisposable
底层的disposable是可替换的,当替换时,会自动dispose前一个disposable。
SingleAssignmentDisposable
只能对底层的disposabel赋值一次,再次赋值将抛出异常。
其他
disposeBag
相当于一个disposables的容器,当bag释放时,会自动dispose其包含的disposable。
NopDisposable
代表销毁时什么也不执行的disposable。
Disposables
相当于一个公共方法结构体。包含一些常用的创建disposable方法。
总结
ok,上面的类基本是disposable所有的类了。我们看到,他的类主要抽象了销毁时我们应该执行什么操作以及处理需要销毁多个disposable的类。