2010-04-24 4 views
8

Les singletons sont souvent considérés comme un mauvais choix de conception, alors comment concevoir une application si vous voulez les éviter?Remplacer les singletons avec quoi?

+0

Ils ont leurs utilisations, mais comme tout ce que vous devez savoir quand les utiliser. Je dirais qu'ils pourraient faire partie d'un mauvais choix de mise en œuvre plutôt que d'un mauvais choix de conception. –

+0

Consultez cet article: [http://www.ibm.com/developerworks/webservices/library/co-single.html](http://www.ibm.com/developerworks/webservices/library/co-single.html – pierocampanelli

Répondre

8

vous pouvez utiliser des concepts tels Dependency Injection pour injecter les services dont vous dépendez (essentiellement les singletons que vous utilisez) pour vous, au lieu de fournir une référence mondiale pour les

+0

En particulier, les frameworks DI peuvent simplifier une grande partie du câblage requis, fournissant la commodité d'un singleton, mais avec une meilleure isolation et la possibilité de s'étendre à plusieurs instances dans le futur, si nécessaire. –

2

Mes 2 cents.

Concevez simplement votre application de telle manière que cela n'a pas d'importance si elle est passée à votre objet ou non. Considérez si vous avez MySingleton.Instance à l'intérieur -> qui semble mauvais et vous êtes étroitement couplé avec cela. Si vous avez passé MySignleton en tant que paramètre dans une méthode et qu'il est instancié à l'extérieur en tant que MySingleton.Instance ou nouveau MySingleton() -> eh bien, je peux encore me moquer ou le changer afin que cela n'a pas vraiment d'importance.

Questions connexes