Verwenden von Enum-basiertem Singleton zum Zwischenspeichern großer Objekte (Java)
Gibt es eine bessere Möglichkeit, einige sehr große Objekte zwischenzuspeichern, die nur einmal erstellt werden können und daher zwischengespeichert werden müssen? Derzeit habe ich Folgendes:
public enum LargeObjectCache {
INSTANCE;
private Map<String, LargeObject> map = new HashMap<...>();
public LargeObject get(String s) {
if (!map.containsKey(s)) {
map.put(s, new LargeObject(s));
}
return map.get(s);
}
}
Es gibt mehrere Klassen, die LargeObjects verwenden können. Aus diesem Grund habe ich beschlossen, einen Singleton für den Cache zu verwenden, anstatt LargeObjects an jede Klasse zu übergeben, die LargeObjects verwendet.
Außerdem enthält die Karte nicht viele Schlüssel (einer oder zwei, aber der Schlüssel kann in verschiedenen Programmläufen variieren). Gibt es in diesem Fall eine andere, effizientere Karte?