0

コードの既存の構造により、次のようになります。

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

バッファが書き込まれたかどうか (ダーティかどうか) をバッファが識別できるようにしたいと考えています。ダーティ フラグを持つ Java のバッファ実装は見つかりませんでした。

これらすべてのケースで、私のコードはすでに渡されていますByteBuffers。このダーティ フラグを追加するには、次のことを行う必要があります。

  • ByteBufferダーティフラグで実装をラップするだけです
  • 基礎となる配列を持つクラスを作成し、ダーティ ビッグおよびその他の操作 (get/put int または long) を追加し、配列をラップしてbyteを再作成します。ByteBufferbyte
  • ByteBufferクラスを延長しますか?(get/put を実装したいのですが、実装するメソッドが多すぎます)

また、ByteBuffer実装をラップするオーバーヘッドはどのくらいですか?

4

1 に答える 1

1

これはデコレータ パターンが適用される問題です。すでに使用されている既存のクラスに単純な機能を厳密に追加しています。この場合、継承によるクラスの拡張は、自然で脅威の少ない実装です。

拡張クラスと基本クラスを使用する Java のオーバーヘッドは、本質的にゼロです。ダーティ フラグ用のスペースと、それを実装するために必要ないくつかの命令を「オーバーヘッド」としてカウントしていません。しかし、これらのコストも非常に低いです。

于 2013-09-07T15:24:40.397 に答える