Bonjour.
Dans ce thread http://www.developpez.net/forums/sho...23#post3166323
Je conseille d'utiliser un singleton plust�t que des variable static. Seulement on me dit que c'est une anti pattern...
Qu'en pensez vous?
Version imprimable
Bonjour.
Dans ce thread http://www.developpez.net/forums/sho...23#post3166323
Je conseille d'utiliser un singleton plust�t que des variable static. Seulement on me dit que c'est une anti pattern...
Qu'en pensez vous?
Re :)
Pour moi, les points les plus noirs sont:
- non testable r��llement (en parlant de test unitaires, pas de test � la main)
- variable globale vaguement masqu�e
- Les d�pendances � ce singleton ne sont pas explicites dans les d�clarations de classe
- En �crire un robuste (threadsafe et exceptionsafe) n'est pas � la port�e d'un d�butant
Et surtout:
- le posteur original du thread li� est un d�butant dont la solution au probl�me ne requiert pas le moindre singleton.
singleton c'est un peu le mal. la plupart des gens cherchent en fait un multiton (une instance cr��e un certain nombre de fois).
un filesystem : une instance ou plusieurs ? en general, une racine et puis un filesystem peut etre mont� sur un autre a la linux. par defaut, rechercher un fichier peut etre fait a partir de la racine, ou bien du point courant, on peut appeler chroot pour changer la racine, etc.
le cot� recursif du filesystem en fait un tres mauvais candidat pour un singleton. mais beaucoup le font quand meme.
mais bon comme tout, ca se discute et ca depend de la facon dont c'est utilis�.
on pourrait par exemple opposer que Filesystem::root() est un singleton deguis�.
C'est pas tr�s claire son probl�me.
S'il voulais des static, c'est surement qu'il avait une raison.
S'il veut acc�der � des m�me valeurs dans diff�rent endroit. Pour moi un singleton est une solution. C'est comme faire un logger. Le singleton est une solution.
Pour lui j'ai peut �tre pas compris son probl�me...
Mais ca ne change pas la question du singleton == anti pattern
Lis google sur singleton antipattern et singleton evil. Prend le temps de lire un certain nombre d'articles, �a vaut le coup ;)
Je tiens encore une fois � insister que bien que je n'aime pas les singletons, il y a des moment o� c'est utile de les utiliser, mais c'est extr�mement rare.
David a donn� un lien vers ma prose sur le sujet, relativement � mon contexte particulier (variables globales avec besoin d'initialisation explicite, et de concurrence d'acc�s)
Depuis, j'ai crois� d'autres discussions int�ressantes. Encore hier dans les archives d'un (bon) blog que je ne connaissais pas encore : "the variation point", qui faisait r�f�rence aux discussions sur le sujet sur object mentor.
Sinon, avec "singleton anti pattern" sur google, il y a de quoi t'occuper une journ�e enti�re.