ハッシュマップ内のさまざまなオブジェクトを持つ一種のキャッシュを処理するシングルトン クラスがあります。(キーの形式は、マップに格納されているオブジェクトのタイプに直接リンクされているため、マップは です)
マップでは、追加、取得、削除の 3 つの異なるアクションが可能です。
パブリック エントリ ポイント メソッドを使用して、マップへのアクセスを保護しました (激しいアクセスはありません)。
public synchronized Object doAction(String actionType, String key, Object data){
Object myObj = null;
if (actionType.equalsIgnorecase("ADD"){
addDataToMyMap(key,data);
} else if (actionType.equalsIgnorecase("GET"){
myObj = getDataFromMyMap(key);
} else if (actionType.equalsIgnorecase("REM"){
removeDataFromMyMap(key);
}
return myObj;
}
ノート:
地図は非公開です。メソッド addDataToMyMap()、getDataFromMyMap()、removeDataFromMyMap() は非公開です。エントリ ポイント メソッドのみが public であり、クラス自体の静的な getInstance() 以外は何もありません。
map を使用する方法は他にないため、 map への同時アクセスがスレッドセーフであることを確認しますか?
マップにとって安全であれば、この原則は他の種類の共有リソースにも適用できると思います。
ご回答ありがとうございます。
デビッド