2010-10-12 12 views
1

Possible en double:
What's Alternative to SingletonSi je ne suis pas autorisé à utiliser le motif Singleton, quelles sont les options?

Si je ne suis pas autorisé à utiliser le modèle Singleton, car il est pas bon POO, quelles sont mes options? J'ai souvent beaucoup de choses qui nécessitent un accès rapide. Si j'utilise un Singleton, on me dit que ce n'est pas une bonne OOP, et si je fais référence aux choses, je reçois beaucoup de cours avec beaucoup de références.

Des idéas?

+1

Qui a dit Singleton est pas bon POO? Ce n'est tout simplement pas recommandé dans certains cas. –

+2

Le motif singleton est juste un autre motif - par lui-même ce n'est pas «mauvais POO». Ce à quoi vous devez penser, ce sont les spécificités de ce que vous faites, et trouvez le modèle qui correspond à cela - quel type d'application développez-vous? – Assaf

+1

Personnellement, je crois que le pattern singleton est une excellente OOP dans les cas où l'objet que vous modélisez ne peut jamais avoir plus d'une instance. –

Répondre

1

"Ce n'est pas une bonne OOP" n'est pas une bonne raison pour rejeter un motif de codage. La POO est bonne pour certaines choses, mais certainement pas pour toutes les choses. Je ne suis pas un grand fan de Singleton moi-même, tbh, mais pas parce que c'est "pas bon OOP", mais plutôt parce qu'il a beaucoup des mêmes inconvénients que les variables globales, plus gunk objet supplémentaire. Je devrais en savoir plus sur la structure de votre application pour donner des conseils sur ce qu'il faut utiliser à la place, cependant.

0

Vous pouvez toujours aller à une approche plus axée sur les services et l'hôte d'un service qui pourrait définir comme Singleton pour traiter divers postes de travail pour les appels multiples ...

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class MySingleton : 
{ 
}