/ / Singleton est-il un anti-modèle? - printemps, singleton, anti-modèles

Singleton est-il un anti-modèle? - printemps, singleton, anti-modèles

Singleton est-il un anti-modèle? Si oui, alors Dependency Injection in Spring est également anti-pattern (parce que Spring favorise le bean Singleton, qui est le défaut).

Réponses:

5 pour la réponse № 1

Il existe une différence importante entre coder en dur un singleton et utiliser Spring pour créer un bean singleton: ce dernier n’est qu’une configuration.

En tant que tel, Spring n’empêche pas la testabilité: c’est un cas d’utilisation unique dans lequel un bean est utilisé comme singleton. Vous pouvez facilement utiliser le même ressort en l’instanciant manuellement dans un test ou en le remplaçant par une implémentation simulée de la même interface.

Si vous codez une classe en tant que singleton, vous ne pouvez pasremplacez-le facilement, sans le réécrire. Le test n’est qu’un exemple simple dans lequel vous souhaiterez peut-être le remplacer. Si vous réalisez que vous aurez besoin de deux instances différentes de ce haricot, vous êtes également bloqué avec un singleton codé en dur.


3 pour la réponse № 2

Le modèle Singleton n’est pas un anti-modèle, c’est une façon de limiter le nombre d’instances. pour un objet.

Mais abuser du singleton pour fournir des instances globales est un anti-modèle.

Pour la partie de printemps de votre question, voir la réponse de Joachim Sauer.