Y a-t-il des inconvénients à la configuration singleton? [dupliquer]
-
23-09-2019 - |
Question
Doublons possibles: Ce qui est si mal à propos de singletons de
Problèmes avec motif Singleton
Y at-il des inconvénients à un singleton? J'ai entendu ce fut une question d'entrevue et je suis à venir à court sur la signification.
IMHO, il est sur l'utilisation et rien dans le modèle lui-même est problématique
La solution
De Wikipedia :
Certains considèrent comme un anti-modèle , jugeant qu'il est galvaudé, introduit des limitations inutiles les situations où une seule instance d'un classe n'est pas réellement nécessaire, et introduit état global dans un application.
Personnellement, depuis que j'ai commencé à utiliser Spring à l'auto-fils mon application, je ne l'ai jamais eu le besoin d'écrire un singleton.
Autres conseils
C'est une question très générique, cela dépend vraiment de votre cas d'utilisation. Je cite ce qui suit:
- Vous avez toujours besoin d'un mutex (ou bloc synchronisé) pour protéger l'appel initial getInstance (), qui peut être problématique dans certains cas.
- Il est un hack pour cacher le fait que vous créez une variable globale, et les variables globales sont généralement mauvais. Cependant, il y a de nombreux cas où la simplicité est appréciable qu'ils apportent, mais attention à ne pas abuser.
- Non testable ou du moins il est difficile
- Difficile de trouver des classes dépendantes
- Ne permet pas subclassing
- ...