¿Qué hay de malo en los solteros?

El patrón singleton es un miembro de pleno derecho del GoF's libro de patrones, pero últimamente parece bastante huérfano en el mundo de los desarrolladores. Yo todavía uso bastantes singletons, especialmente para clases fábrica, y aunque hay que tener un poco de cuidado con los temas de multihilo (como cualquier clase en realidad), no veo por qué son tan horribles.

Especialmente Stack Overflow parece asumir que todo el mundo está de acuerdo en que los Singletons son malos. ¿Por qué?

Por favor, apoye sus respuestas con "Hechos, referencias, o experiencia específica*"

  1. Se puede (ab)utilizar fácilmente como variable global.
  2. Las clases que dependen de singletons son relativamente más difíciles de probar de forma aislada.
Comentarios (0)

Ver Wikipedia Patrón_Singleton

También es considerado un anti-patrón por algunas personas, que sienten que se utiliza en exceso, introduciendo limitaciones innecesarias en situaciones en las que una única instancia de una clase no es realmente necesaria[1][2][3][4].

Referencias (sólo referencias relevantes del artículo)

  1. ^ Alex Miller. Patrones que odio #1: Singleton, julio de 2007
  2. ^ Scott Densmore. Por qué los singletons son malos, mayo de 2004
  3. ^ Steve Yegge. Los singletes se consideran estúpidos, septiembre de 2004
  4. ^ J.B. Rainsberger, IBM. Usa tus singletons sabiamente, julio de 2001
Comentarios (2)

Debido a que son básicamente variables globales orientadas a objetos, normalmente puedes diseñar tus clases de tal manera que no las necesites.

Comentarios (4)