在Java中分析EventBus的不同值类型



我正在通过网络接收简单的数据,文本中的名称/值对。我需要编写一个流程来获取这些对,将它们切碎,并通过事件总线发送到不同的区域进行处理。每个名称代表不同的数据"类型"或转换操作,我必须对字符串的值部分执行这些操作。

从表面上看,这很简单,但我正在寻找一个简单、"正确"的架构来实现这一点,这样我就可以转换300种不同的值。这里有一个简单的例子:

输入:

9,19.0,31,0.00,34,0.379579,37,1.319952,55,0.03,66,0.00,81,1.558965,82,1.578690,92,0.03,99,24.57,100,-8144.29,101,0.13,105,2.999,106,148.3,108,-155.8,111,4.263,112,155.0,113,-170.0,167,10.60,205,1.558965,231,-0.040,232,-93.8,237,75.0,238,0.100

真正的意思是:

9,19.0
31,0.00
34,0.379579

等等。。。

在"34"事件的情况下,我必须将该数字转换为不同的值以显示给用户。因此,每种事件类型都可能有不同的转换过程。事实上,我认为在所有300种事件类型中可能有一组转换过程(如12个)。

以下是我的问题。

  1. 如何处理所有转换类型?这类似于可以注入到解析器中的排序算法还是比较器?

  2. 如何在对象创建和GC方面提高效率?这些对来自网络,我不想只丢弃GC可访问的对象(我在Android上)。

  3. 我应该将各种类型映射到公交车上的事件,只让消费者注册他们感兴趣的事件,还是向每个消费者发送一个通用事件,让他们每次都做出决定(我在考虑前者,但也害怕样板)。

任何一般性的想法都将不胜感激。

我最终让编译器为我担心。我有一个巨大的switch语句,每个特定类型的转换都有很多很多情况。

我还梳理了代码,并为我将要重用的东西提取了对象声明。我确保它们在想要使用它们的函数之上声明,然后在函数的早期将它们设置为所需的值。

我有一个单一的事件类型,用于我正在收集的网络数据。我让每个接收者决定是否关心那个事件。这只是消除了大量的样板代码,这些代码必须由工厂来创建每种不同的事件类型。

相关内容

  • 没有找到相关文章

最新更新