用于可观察无限来源的数据结构是什么?

时间:2018-01-10 16:48:39

标签: rx-java2

为一个全球api制作一个Observable / Flowable的干净方法,比如说

public void log(String s)

所有组件都使用此日志方法,该方法当前具有侦听器,并且各种侦听器记录到各种日志记录。我想让它成为一个可观察的,这样多个订阅者就可以订阅这个observable并登录到各种文件/ db。

我希望我不必重做遗留类(可以访问库的代码)。

目前我将字符串添加到数据结构这样的队列中,这是我可观察的,并使用订阅者来实现我想要的。 一个更通用的问题是,如何为无限源创建一个observable(对我来说,log方法是源)以及建议使用什么数据结构来保存这个无限源的数据,这些数据可以成为一个很好的可观察源。

任何指针/推荐/片段都将不胜感激。

[编辑]
正如响应评论中所建议的那样,使用PublishSubject解决了我的问题 当我需要订阅时,我访问主题对象并在其上调用订阅。

static PublishSubject<LogEvent> subject  = PublishSubject.create();

    public static void log (LogEvent evt) {

        subject.onNext(evt);
    }

0 个答案:

没有答案