要素のマップを保持するコンテナがあります。
class MyContainer{
.....
Map<String,MyElement> elements = new ...
...
}
各要素には name プロパティがあります。マップのキーは要素の名前です。つまり、メソッドの挿入は次のとおりです。
void addElement(MyElement elem){
elements.put(elem.getName,elem);
}
要素名に基づく読み取り操作が多いため、マップ データ構造を使用する必要があります。
問題は、要素の名前の変更をサポートする必要があることです。要素名を変更すると、マップ内の変更が派生する必要があります。(新しいキーで要素を挿入しないと、その要素を見つけることができません)
私は2つのオプションについて考えました:
名前が変更されたコンテナーを更新する setName メソッドを MyElement クラスに追加します。
setName メソッドを MyElement クラスに追加せず、rename element メソッドをコンテナーに追加します。コンテナーは、マップ内の要素名とキーの両方の更新を担当します。
オプション 1 は、各要素からコンテナーへの参照を維持する必要があることを意味します。(プログラムのこの部分は、メモリ フットプリントを低く維持する必要があります)。
あなたは何を言っていますか?より良いオプションがありますか?