24Fermer26
Kevin KoflerLe 31/12/2016 à 10:01
À mon avis, le principal avantage du singleton par rapport à une variable globale est qu'il y a moins à changer si on a finalement besoin de plusieurs instances (on a déjà l'objet, il "suffit" de le rajouter en paramètre un peu partout, alors que si on avait des variables globales, il faut en plus créer l'objet qui les encapsule), le principal inconvénient est que ça rend le code plus compliqué et plus lent.

Sinon, une autre méthode serait d'avoir un objet application qui a toutes ces variables en variables d'instance et duquel pratiquement toutes tes fonctions sont des méthodes. Bref, un seul singleton, où tu peux éventuellement te passer du pattern singleton, il suffit de le construire dans main et rien d'autre n'a à obtenir une instance. Mais c'est pratique surtout si le code était procédural à 99%, sinon, ça va entrer en conflit avec les "vrais" objets. (C'est la méthode à choisir si on a du code purement procédural avec des variables globales et veut le rendre réentrant.)