juillet
2007
Je viens vous annoncer mon nouvel article consacré au design pattern Singleton. Cet article court a pour but de présenter facilement ce pattern, de maniere concrète. Le code illustrant mes propos est disponible en VB.Net et en C#.
Les design patterns sont nombreux et plus ou moins connus, au cours de cet article je vais vous présenter le plus connu et populaire, il s’agît du Singleton. Ce pattern à pour but de contrôler et de limiter à une ou quelques unes le nombre d’instances existantes pour une classe donnée. Voyons sans plus tarder comment implémenter ce pattern en .Net (Visual Basic 2005 et C# 2.0).
Je vous rappelle que vous pouvez égalememt consulter mon domaine sur Developpez.com. Cette page liste tous mes articles sur .Net, SQL Server et Windows.
2 Commentaires + Ajouter un commentaire
Commentaires récents
- Microsoft.com migre 79 serveurs vers Windows Server 2008 Beta 3 dans
- L’ouverture est décidément très à la mode… au tour de Microsoft dans
- Microsoft Most Valuable Professional (MVP) en 2008… dans
- Article : Design pattern Singleton avec .Net (VB.Net et C#) dans
- Article : Design pattern Singleton avec .Net (VB.Net et C#) dans
Merci beaucoup Loic pour cette suggestion, je vais regarder cela de plus pret, et voir dans quelle mesure je peux realiser une mise a jour de mon article avec cette solution.
bonjour,
la concision de l’article est bien appréciable pour découvrir un concept, et beaucoup d’articles l’oublie trop souvent. Merci donc.
Par contre, la fin se termine par un soucis d’efficacité du ‘lock’. Pourquoi ne pas ajouter à l’article la solution préconisé par MS itself (« double check logging » ici: http://msdn2.microsoft.com/en-us/library/ms998558.aspx) qui permet de plus faire le lock une fois l’instance crée.
Exemple pris sur MSDN :
public sealed class Singleton
{
private static volatile Singleton instance;
private static object syncRoot = new Object();
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
}
il y aussi le ‘volatile’ et le ‘sealed’.