思考演習のために、特定のクラスの各インスタンスに属性の一意性をどのように適用できますか?
ここでの一意性は、単一のJVM上にあり、単一のユーザーセッション内にあると定義できます。
これはJavaレベルであり、データベースとは関係ありません。主な目的は、衝突が発生したかどうかを確認することです。
最初の明らかなステップは、クラスレベルで静的属性を持つことです。
- インスタンスの数が増えるにつれて、ArrayListまたは他のコンテナを持つことは実用的ではないように思われます。
- クラスレベルで数値カウンタをインクリメントするのが最も簡単な方法のように見えますが、idは常にlast-used-idの後に続く必要があります。
- ハッシュまたは非数値IDを適用すると問題が発生する可能性があります。
- 並行性が懸念される場合があります。2つのインスタンスが同時にIDを取得する可能性がある場合は、これを防ぐ必要があります。
この問題にどのように取り組むべきですか?どのような解決策/アプローチがすでに存在する可能性がありますか?