gpt4 book ai didi

Java 7 - 通过类层次结构流式传输数据

转载 作者:行者123 更新时间:2023-12-02 04:38:06 26 4
gpt4 key购买 nike

我正在尝试编写某种类层次结构,更具体地说,是一个执行层次结构。数据应通过每个元素沿层次结构传递,同时在此过程中进行修改。并发不是问题,尽管它是多线程程序的一部分。 澄清一下:想要有一个类的层次结构,我想要一个实例的层次结构。像这样的事情:

public abstract class ExecutionElement extends OutputStream {
private ExecutionElement child;
private InputStream input;

public ExecutionElement(InputStream input) {
this.input = input;
}

public ExecutionElement(ExecutionElement parent) {
parent.addChild(this);
}

private void addChild(ExecutionElement child) {
this.child = child;
}

protected PipedOutputStream processData() {
// process the data according to the purpose of the current element.
// pseudocode from here
// this is the root element, read from the InputStream and write to child element
}

protected PipedOutputStream processData(PipedOutputStream data) {
// this is an intermediary element, read from PipedOutputStream -->
// convert the stream to pipedInputStream
// process data
// write to child
}
}

想法如下:我将某种InputStream传递到层次结构的根元素。然后根元素修改此数据(插入或删除流的特定部分),然后传递给子元素。冲洗并重复。

整个过程必须尽可能高效。当然,ExecutionElement 会有多种不同的实现,具有不同的用途。最近,我一直在考虑使用 PipedInputStreamPipedOutputStream 来加快速度,但它对我来说还不起作用。此外,由于多种原因,我无法使用外部库。我们在项目中使用 Java 7,因此我们不能使用 Streams正如建议的那样,因为这是 Java 8 的一项功能。

问题是:您对层次结构的设计有什么建议/推荐吗?我应该遵循什么具体的设计原则?

提前致谢。

最佳答案

您本质上是想实现管道模式

如果您要传递字节数据,则您已经使用 InputStream/OutputStream 类(您可以在其中扩展 FilterInputStream FilterOutputStream)。如果您打算传递对象,我建议您创建自己的“对象流”类(不要使用ObjectInputStream/ObjectOutputStream,它们用于序列化)。

关于Java 7 - 通过类层次结构流式传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com