Java 创建主题
我正在实现一个字节消息反序列化器,它将在dispatcher接口上分派反序列化消息,并返回所有抛出的Java 创建主题,java,rx-java,subject,reactivex,subject-observer,Java,Rx Java,Subject,Reactivex,Subject Observer,我正在实现一个字节消息反序列化器,它将在dispatcher接口上分派反序列化消息,并返回所有抛出的Throwables的可观察值,以便客户端代码能够处理错误 该方法的原型草图: Observable<Throwable> dispatchDeserializedMessages(Observable<byte[]>, Dispatcher) Observable dispatch反序列化消息(Observable,Dispatcher) 现在,从最近开始,我熟悉主题
Throwable
s的可观察值,以便客户端代码能够处理错误
该方法的原型草图:
Observable<Throwable> dispatchDeserializedMessages(Observable<byte[]>, Dispatcher)
Observable dispatch反序列化消息(Observable,Dispatcher)
现在,从最近开始,我熟悉主题
,这将非常适合这里,例如
Subject<byte[], Throwable> dispatchDeserializedMessages(Dispatcher)
主题Dispatch反序列化消息(Dispatcher)
但是没有像create()
这样方便的方法可以轻松地委托给观察者和被观察者。所有具体的实现都将T
与R
统一起来,所以我不可能使用其中的一个
所以我的具体问题是:有没有一种方法可以实例化一个合适的
主题
,它委托给观察者
和可观察者
?我是否有其他方法可以创建这样一个主题
,而不必实现整个主题
,可观察的
和观察者
?切换到基于主题的API可能不是最好的主意,因为您将潜在的冷API更改为强制的热API。在您的原始设计中,可丢弃的
序列的使用者在订阅时会假设,可观察的
也会被订阅
否则,我有一个关于创建
主题的方法,但你不能避免繁重的工作。你会发现把你的字节[]
包装在一个类中有好处吗,可能是名为反序列化消息之类的?不太可能,我会称之为缺点。如果我理解正确,您建议将解码步骤外包到从字节[]
块生成反序列化消息的方法中。我现在更愿意使用双/访问者编码(调用dispatcher上的onTypeOfMessage()
),因为它解决了us.YMMV表达式问题所需的部分(类型安全的可扩展工具),但我讨厌传递基元类型,因为它似乎总是会发生变化,当你面对一个长期的工业项目时,你可能是对的,但这只是一个实现IETF RFC的家庭作业。byte[]
直接来自套接字的InputStream
,我怀疑这在接下来的两个月内会发生变化:)。哦,家庭作业——是的,最简单、最快的书面解决方案是最好的:)