私は、アーキテクチャのさまざまな部分からの複数のクラスが完全に置き換えられる可能性のある同じデータ構造を見たいと思う状況に遭遇しました。データ構造を維持し、十分に簡単な情報を更新すると(すべてが同じものを参照でき、見ていると最新の情報を得ることができます)、if参照は完全に再割り当てされ、他の場所には反映されません。ラッパー、その中だけ値を再割り当てすることはないアイデアを"Pointer Pointer"のJavaバージョン
public class Wrapper<T>{
public T _value;
}
:
私は超汎用ラッパーのようにするために考えていました。次に、異なるコンポーネントすべてがラッパーを指すことができ、「新しい」バージョンが来たときに内部値をきれいに再割り当てできます。 (私はこれがCで**
で行われたと思ったと思う)
しかし、私は以前これを見たことがないとは思う。この問題に対処するより良い方法はありますか?
[ 'AtomicReference'(https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicReference.html)から
コード例良い選択かもしれないので、あなたは複数のスレッドで最新の読み取りを保証されています。 –
また、更新可能なデータ構造のインスタンスに 'version'フィールドを追加することを検討してください。そうすれば、データが更新されたかどうかをオブザーバが検出できます。 –