1

我正在实现一个字节消息反序列化器,它将在调度程序接口上调度反序列化消息并返回所有Throwable抛出的 observable,以便客户端代码可以处理错误。

这样做的方法原型的草图:

Observable<Throwable> dispatchDeserializedMessages(Observable<byte[]>, Dispatcher)

现在最近我很熟悉Subject<T, R>,它非常适合这里,例如

Subject<byte[], Throwable> dispatchDeserializedMessages(Dispatcher)

但是没有任何方便的方法create()可以轻松地委托给观察者和可观察者。所有具体实现都T与统一R,所以我无法使用其中之一。

所以我的具体问题是:有没有一种方法可以实例化一个合适Subject<byte[], Throwable>的委托给一个Observerand Observable?有没有其他方法可以创建这样的 aSubject而不必实现(在必须手动委托每个实现的方法的意义上)整个Subject,ObservableObserver

4

1 回答 1

2

切换到基于主题的 API 可能不是最好的主意,因为您将潜在的冷 API 更改为强制的热 API。在您的原始设计中,Throwable序列的使用者会假设它Observable<byte[]>在订阅时也会被订阅。

否则,我有一个关于创建s 的博客系列Subject,但你无法避免使用它们的繁重工作。

于 2016-01-21T12:22:59.737 回答