Je l'admets. J'utilise des singletons. Je sais ce que vous pouvez tous dire, et franchement, en voyant toutes ces réponses sur Internet, en parlant des mauvais aspects des singletons, et en les déconseillant, j'ai vraiment remis en question mes pratiques de programmation.Singletons: Avantages, inconvénients, Design Concerns
J'ai déjà lu quelques articles dans StackOverflow concernant Singletons, mais je poste cette question non seulement pour poser des questions à leur sujet, mais pour voir quelques idées sur la façon dont je les utilise dans mes programmes. Je pense que je dois vraiment clarifier certaines choses ici et demander des directions avant.
permet donc tenir compte de certains cas où j'utilise singletons beaucoup:
- Pour créer accesseurs à des variables globales, comme mon contrôleur de vue racine, les contrôleurs de vue spécifique et toujours en vigueur, l'état d'application, mon contexte objet global géré ... des choses comme ça
- Pour créer des classes d'utilitaires dont le travail consiste à gérer l'ensemble de l'application de données. Par exemple, je crée un Singleton qui va gérer ma base de données de mise en cache, qui repose sur des données de base. Comme j'ai besoin de créer des caches et d'autres choses à mettre dans la base de données dans différentes vues, il m'a semblé préférable de créer une classe qui gèrerait les entrées/sorties de la base de données (attention à la sécurité des threads).
- Gestion des sessions réseau. En fait, je l'utilise pour maintenir en vie une connexion et envoyer quelque chose comme un PINg à un serveur toutes les XX secondes.
Je pense que cela résume tout. Je voudrais vraiment les opinions des autres développeurs sur le sujet.
Pensez-vous qu'il existe de meilleures solutions pour ces problèmes ci-dessus?
Pensez-vous qu'il existe toujours de meilleures alternatives aux singletons et qu'elles devraient être évitées?
Est-il préférable, en termes de multithreading, d'oublier les singletons?
Toutes les recommandations et pensées seraient utiles, et les bienvenus.
Pourquoi les gens disent-ils toujours que les singletons sont mauvais? Ils sont géniaux, je les utilise tout le temps. Si vous voulez éviter les singletons, vous devriez éviter complètement la POO. –
Les questions à la recherche d'opinions ou de discussions d'autres développeurs peuvent être mieux placées sur [programmers.se]. Il y a en fait déjà quelques [posts sur singletons] (http://programmers.stackexchange.com/search?q=singletons) là-bas. –
Singletons sont ** génial ** et la vie de programmation serait * pire * sans eux. http://cocoasamurai.blogspot.com/2011/04/singletons-your-doing-them-wrong.html – Jacksonkr