使用Stream API组织应用程序管道

时间:2015-05-05 11:08:57

标签: java java-8 pipeline

据我所知,Stream API旨在应用于集合。但是我非常喜欢它们的想法,以至于我尽可能地应用它们,当我不应该这样做时。

最初我的应用有两个线程通过BlockingQueue进行通信。首先会填充新元素。第二个对它们进行转换并保存在磁盘上。对我而言,看起来像是一个完美的流机会。

Code I最终得到:

Stream.generate().flatten().filter().forEach()

我想在那里放几个map但事实证明我必须拖动一个额外的字段直到forEach。因此,我要么必须使用两个字段创建无意义的类,并使用AbstractMap.SimpleEntry来表示两个字段,这对我来说并不是很重要。

无论如何,我改写了我的应用程序,它甚至似乎工作。但是有一些警告。因为我有无限的流'事物'无法阻止。现在我在守护程序线程上启动它,但这不是一个解决方案。业务逻辑(如连接丢失/发现,这可能不是BL)看起来疏远了。也许我只需要代理。

另一方面,队列人口存在自由懒惰。一个线程而不是两个(不确定这有多好)。希望其他开发人员熟悉模式。

所以我的问题是使用Stream API进行应用程序流组织的可行性如何?还有更多的不足之处吗?如果没有推荐什么是替代品?

0 个答案:

没有答案