2012-08-22 1 views

Répondre

3

Les singletons avec état sont beaucoup plus difficiles à tester. J'utilise des singletons sans état avec lesquels je ne vois pas de problème.

Depuis singletons peuvent implémenter des interfaces, ils peuvent être passés en utilisant l'injection de dépendance (et doivent être passés en tant que telle, si possible)

+4

Si le singleton est sans état alors pourquoi avoir un singleton du tout plutôt qu'une collection de méthodes statiques? – Servy

+3

Il n'y a pas de «singleton sans état». –

+1

Un singleton sans état peut implémenter une interface. Supposons que vous ayez une interface 'Marshaller' qui transforme fonctionnellement un objet en' byte [] 'et vice-versa. Vous voulez être capable de passer différentes stratégies via DI, ce qui signifie que vous devez avoir une instance à passer. Il y a un certain nombre d'implémentations pour cela potentiellement avec leur propre classe, mais vous n'avez besoin que d'une instance si elles sont sans état. –