2010-04-24 18 views
8

Se suele decir que los singleton son una mala elección de diseño, así que ¿cómo diseñar una aplicación cuando quiere evitarlos?Reemplazar singletons con qué?

+0

Tienen sus usos, pero como todo lo que debe saber cuándo usarlos. Diría que podrían ser parte de una mala elección de implementación en lugar de una mala elección de diseño. –

+0

Consulte este artículo: [http://www.ibm.com/developerworks/webservices/library/co-single.html](http://www.ibm.com/developerworks/webservices/library/co-single.html) – pierocampanelli

Respuesta

8

puede utilizar conceptos tales Dependency Injection para inyectar los servicios de los que depende (básicamente los únicos que usa) a que, en lugar de proporcionar una referencia global a ellos

+0

En particular, los marcos DI pueden simplificar una gran parte del cableado requerido, proporcionando la comodidad de un singleton, pero con un mejor aislamiento y la posibilidad de extenderse a múltiples instancias en el futuro, si es necesario. –

2

Mis 2 centavos.

Simplemente diseñe su aplicación de tal manera que realmente no importe si se pasa solo o no a su objeto.

Considere si tiene MySingleton.Instance inside -> que se ve mal y está estrechamente relacionado con esto. Si pasó MySignleton como parámetro en un método y se crea una instancia externa como MySingleton.Instance o MySingleton() -> bueno, todavía puedo simular o cambiarlo, así que realmente no importa.