由于现有的代码结构,如下所示:
// 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
实现的开销是多少?
答案 0 :(得分:1)
这是decorator pattern适用的问题。您正在严格地将简单功能添加到已在使用的现有类中。在这种情况下,通过继承扩展类是一种自然且低威胁的实现。
使用扩展类与基类的Java开销基本上为零。我不认为脏标志的空间“开销”以及实现它所需的一些指令。但这些成本也非常低。