所以现在我有一堆模块。这就像一条装配线。有数据流过,每个模块对数据做一些事情,或者你可以说下一个模块消耗前一个模块产生的输出。每个模块都被期望是独立的和可重用的。我认为这是一个非常典型的场景。
所以最初我将每个模块的接口设计为模块(InputStream 是,OutputStream os)。因此,它可以将文件(无论来源如何)作为输入和输出。当您想到数据流时,前一个模块的输出流将流向下一个模块的输入流。但后来我意识到 Java 甚至没有一种直观/简单的方法来将数据从 OutputStream 获取到 InputStream。(注:这个问题不是关于如何实现的。有兴趣的人, How to convert OutputStream to InputStream?)
在我看来,OutputStream/InputStream 可能不是为了这样的目的。那么在这种情况下,设计处理数据流的接口的最佳方式是什么?