La réponse à cette question semble évidente, mais je dois être complètement sûr. Donc, si la réponse peut fournir une référence faisant autorité avec des énoncés clairs et non ambigus, ce serait formidable.MemcacheService est fondamentalement un singleton
Dire que j'ai les deux méthodes suivantes
public CollectionResponse<Dog> getDogs(Identification request){
MemcacheService syncCacheDog = MemcacheServiceFactory.getMemcacheService();
syncCacheDog.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
// ........
value = (byte[]) syncCacheDog.get(key); // read from cache
if (value == null) {
// get value from other source
// ........
syncCacheDog.put(key, value); // populate cache
}
// ........
}
public CollectionResponse<Cat> getCats(Identification request){
MemcacheService syncCacheCat = MemcacheServiceFactory.getMemcacheService();
syncCacheCat.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
// ........
value = (byte[]) syncCacheCat.get(key); // read from cache
if (value == null) {
// get value from other source
// ........
syncCacheCat.put(key, value); // populate cache
}
// ........
}
sont-syncCacheDog et syncCacheCat pointant vers la même carte? Ou si je veux qu'ils pointer sur la même carte, dois-je créer
static MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
puis utilisez syncCache
dans les deux méthodes? En revanche, si c'est un singleton, comment puis-je maintenir deux caches différents? C'est à dire. quelqu'un peut-il s'il vous plaît copier et coller une de mes méthodes et le montrer écrit avec un espace de noms et au lieu de traiter avec un octet générique pour traiter un objet spécifique comme le chien?