Singletons são realmente tão ruins assim? [duplicado]

Duplicata Possível:
O que há de tão ruim em Singletons?

É compreensível que muitos padrões de design possam, em alguns casos, ser abusados, e como a mãe sempre dizia: "Muito de uma coisa boa nem sempre é boa!"

Estou notando que hoje em dia estou usando muito o Singleton, e estou preocupado que eu possa estar abusando do padrão de design, e me aprofundando mais e mais em um tipo de prática ruim.

Estamos desenvolvendo um aplicativo Flex que possui uma estrutura de dados hierárquica bastante grande mantida na memória enquanto o usuário trabalha nela. O usuário pode carregar, salvar, alterar e atualizar os dados sob demanda.

Esses dados são centralizados por meio de uma classe Singleton, que agrega alguns ArrayCollections, Arrays, objetos de valor e algumas outras variáveis ​​de membros nativos expostas por meio de getters e setters.

Para obter uma referência aos nossos dados de qualquer lugar no aplicativo, fazemos todo o tipo de coisa do método Model.getInstance (), com o qual todos estão familiarizados. Isso garante que sempre tenhamos acesso à mesma cópia de dados, já que, quando projetamos, dissemos que apenas uma vez é permitida a existência de uma instância durante a vida útil da aplicação.

A partir desse repositório de dados central, é fácil, por exemplo, despachar eventos alterados de propriedade e ter vários componentes de interface do usuário que fazem referência aos dados centrais, atualizar suas exibições para refletir as alterações de dados ocorridas.

Até agora, esta abordagem tem sido eficaz e comprovada, muito prática para as nossas circunstâncias.

Eu estou achando, no entanto, que eu sou um pouco overeager ao criar novas classes. Perguntas como se uma classe fosse um Singleton, ou deveria ser gerenciada de alguma outra forma, como talvez usar uma fábrica, por exemplo, tendem a se tornar um pouco difíceis, com um pouco de incerteza.

Onde desenho a linha com singletons? Existe uma boa diretriz para decidir quando usar Singletons e quando ficar longe deles.

Além disso, alguém pode recomendar um bom livro sobre padrões de design?

questionAnswers(12)

yourAnswerToTheQuestion