Chociaż to pytanie dotyczy przede wszystkim EhCache, to naprawdę odnosi się do struktur buforowania (i zwykłego starego buforowania) w ogóle.Skrzynki podręczne Singleton lub Instancje?
ehcache pozwala tworzyć pojedyncza CacheManager
do zarządzania wszystkimi Caches
w aplikacji, czy to pozwala na tworzenie „wystąpienie” CacheManager
, co oznacza dokładnie to, co brzmi jak: wielu menedżerów w użyciu w całej aplikacji.
Jakie są plusy/minusy każdego? Na pierwszy rzut oka wydaje się, że byłoby czysto po prostu mieć menedżera singleton.
Jedynym możliwym powodem, dla którego mogę myśleć o tym, dlaczego ktoś chciałby wielu menedżerów instancji, jest fakt, że wszystkie pamięci podręczne, które znajdują się wewnątrz CacheManager
, muszą mieć te same konfiguracje: ten sam rozmiar, strategie użytkowania, pojemności itp. Tak więc, jeśli chcesz wiele pamięci podręcznych, każda skonfigurowana inaczej, singleton CacheManager
nie byłaby w stanie zapewnić różnych konfiguracji pamięci podręcznej dla każdej pamięci podręcznej.
Czy to jedyne kryterium określania menedżerów singleton vs instance? Jeśli nie, jakie są inne kwestie? Czy są jakieś zauważalne koszty związane z wydajnością? Z góry dziękuję!