Maison >développement back-end >C++ >Comment implémenter le Design Pattern Singleton en C ?
Singleton en C
En C , il existe plusieurs façons d'implémenter le modèle de conception Singleton, une technique qui garantit qu'une classe n'a qu'un instance unique. Voici deux approches courantes pour créer une classe Singleton :
Le Singleton classique avec un retour de pointeur
Dans cette méthode, la classe Singleton renvoie un pointeur vers son instance :
<code class="cpp">class A { private: static A* m_pA; A(); virtual ~A(); public: static A* GetInstance(); static void FreeInstance(); void WORK1(); void WORK2(); void WORK3(); };</code>
Cependant, cette approche présente un problème potentiel si la méthode FreeInstance() est appelée alors que l'objet a encore des références. Pour résoudre ce problème, évitez de libérer manuellement les objets Singleton.
Singleton avec un retour de référence
Renvoyer le Singleton comme référence est une autre approche qui offre une meilleure sécurité :
<code class="cpp">class A { private: static A* m_pA; explicit A(); void A(const A& a); void A(A &a); const A& operator=(const A& a); virtual ~A(); public: static A* GetInstance(); static void FreeInstance(); void WORK1(); void WORK2(); void WORK3(); };</code>
Cette implémentation garantit que vous ne pouvez pas détruire accidentellement l'objet Singleton.
Considérations supplémentaires
Pour plus de lectures et les meilleures pratiques sur la conception Singleton, reportez-vous aux ressources suggérées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!