J'ai récemment téléchargé quelques échantillons à utiliser avec la mise en cache d'AppFabric. J'ai remarqué que l'échantillon utilisait une classe avec des méthodes statiques au lieu d'un singleton.
Je pensais le transformer en singleton pour les raisons suivantes :
- charge paresseuse
- Un seul cas de cache... Je ne vois pas pourquoi il faudrait plus d'une instance.
Suis-je à côté de la plaque ou en plein dans le mille ?
Vous trouverez ci-dessous une classe qu'ils ont incluse :
public class CacheUtil
{
private static DataCacheFactory _factory = null;
private static DataCache _cache = null;
public static DataCache GetCache()
{
if (_cache != null)
return _cache;
//-------------------------
// Configure Cache Client
//-------------------------
//Define Array for 1 Cache Host
List<DataCacheServerEndpoint> servers =
new List<DataCacheServerEndpoint>(1);
//Specify Cache Host Details
// Parameter 1 = host name
// Parameter 2 = cache port number
servers.Add(new DataCacheServerEndpoint("localhost", 22233));
//Create cache configuration
DataCacheFactoryConfiguration configuration =
new DataCacheFactoryConfiguration();
//Set the cache host(s)
configuration.Servers = servers;
//Set default properties for local cache (local cache disabled)
configuration.LocalCacheProperties =
new DataCacheLocalCacheProperties();
//Disable tracing to avoid informational/verbose messages on the web page
DataCacheClientLogManager.ChangeLogLevel(System.Diagnostics.TraceLevel.Off);
//Pass configuration settings to cacheFactory constructor
_factory = new DataCacheFactory(configuration);
//Get reference to named cache called "default"
_cache = _factory.GetCache("default");
return _cache;
}