Java缓冲区可以判断它是否脏

时间:2013-09-07 14:52:21

标签: java byte bytearray bytebuffer

由于现有的代码结构,如下所示:

// Read buffer (using ByteBuffer)
// Pass buffer to a remote method, which MIGHT write to it
// Write buffer back if dirty

我希望我的缓冲区能够识别它是否被写入(如果它是脏的)。我没有在带有脏标志的java中找到任何缓冲区实现。

在所有这些情况下,我的代码已经传递ByteBuffers,以便在我添加这个脏标志时:

  • 只需用脏标志
  • 包装ByteBuffer实现
  • 编写一个带有基础byte数组的类,添加脏大和其他操作 (get / put int或long)并通过环绕重新创建ByteBuffer byte数组
  • 扩展ByteBuffer课程? (我很高兴实现get / put但是那里 是很多方法要实施)

此外,包装ByteBuffer实现的开销是多少?

1 个答案:

答案 0 :(得分:1)

这是decorator pattern适用的问题。您正在严格地将简单功能添加到已在使用的现有类中。在这种情况下,通过继承扩展类是一种自然且低威胁的实现。

使用扩展类与基类的Java开销基本上为零。我不认为脏标志的空间“开销”以及实现它所需的一些指令。但这些成本也非常低。