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?
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.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Partager