Le pattern singleton est l'un des pattern les mieux connu en ingénierie informatique. Une singleton est une classe qui ne permet qu'une seule instance d'elle même. Et pourtant, en lisant cet article, vous pourriez être surpris ...
Avec un article général sur ce pattern :
http://csharpindepth.com/Articles/General/Singleton.aspx
Article traduit par Jérôme Lambert sur développez.com :
http://jlambert.developpez.com/tutoriels/dotnet/implementation-pattern-singleton-csharp/
Ce sujet permet d'aborder un certain nombre de problématiques pointues comme le "thread-safe", l'initialisation des variables statiques ... Qui sont des problématiques systèmes, à résoudre absolument si l'on veut développer une application.
Finalement, la solution 4 est :
public
sealed
class
Singleton
{
private
static
readonly
Singleton instance =
new
Singleton
();
//
Explicit
static
constructor
to
tell
C#
compiler
//
not
to
mark
type
as
beforefieldinit
static
Singleton
()
{
}
//
This constructor to tell C# compiler to do not
//
create default public constructor
private
Singleton
()
{
}
public
static
Singleton Instance
{
get
{
return
instance;
}
}
}
Et un exemple de ce qu'il ne faut pas écrire :
//
Bad
code!
Do
not
use!
public
sealed
class
Singleton
{
private
static
Singleton instance=
null
;
private
Singleton
()
{
}
public
static
Singleton Instance
{
get
{
if
(instance=
=
null
)
{
instance =
new
Singleton
();
}
return
instance;
}
}
}
Aucun commentaire:
Publier un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.