Об использовании Singleton на основе Enum для кэширования больших объектов (Java)

Есть ли лучший способ для кэширования некоторых очень больших объектов, которые могут быть созданы только один раз, и поэтому должны быть кэшированы? В настоящее время у меня есть следующее:

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);
    }
}  

Существует несколько классов, которые могут использовать LargeObjects, поэтому я решил использовать синглтон для кэша вместо передачи LargeObjects каждому классу, который его использует.

Кроме того, карта не содержит много ключей (один или два, но ключ может различаться при разных запусках программы), поэтому есть ли другая, более эффективная карта для использования в этом случае?

Ответы на вопрос(2)

Ваш ответ на вопрос