Quelle est la meilleure façon de détruire un objet singleton?détruire un objet singleton
cas A: Environnement fileté simple
cas B: multithread Environnement
Les extraits de l'échantillon (le cas échéant) sera vraiment utile.
[EDIT] Je n'ai pas de cas d'utilisation spécifique J'essaie juste de comprendre que SI TOUT le singleton doit être utilisé, comment le détruire correctement. Si je comprends, à partir des commentaires, il ya 2 scénarios possibles:
1. Détruisez le singleton quand aucun code n'y accède (utilisez des pointeurs intelligents qui se chargeront de détruire l'objet par lui-même en utilisant RAII)
2. Détruire un singleton lors de la sortie du programme indépendamment du fait que du code soit retenu ou non par le singleton. (détruisez explicitement en supprimant l'instance juste avant les sorties principales)
La méthode _best_ est généralement de ne pas avoir de singletons du tout; alors vous n'avez pas à détruire les singletons :-) –
La suppression des fichiers source et d'en-tête devrait faire l'affaire. Puis venez avec un design qui n'utilise pas de singletons. –
Pour plus d'informations sur les raisons pour lesquelles "Singletons are Evil", lisez http://www.lostechies.com/blogs/scottdensmore/archive/2009/08/13/singletons-are-evil-part-2.aspx et son prédécesseur, qui est lié à partir de là. –