Arquitetura Corporativa para Todos

Artigo / Post

Singleton: Anti-pattern ou apenas mal interpretado?

O padrão de projeto Singleton garante que apenas uma instância de uma classe exista durante a execução de um programa, fornecendo um ponto de acesso global a essa instância.

Admito que já o classifiquei imprudentemente como um anti-pattern, mas estou aqui para me redimir. O Singleton resolve um problema recorrente e, por isso, tem sua utilidade. Mas por que é tão polêmico a ponto de ser chamado de anti-pattern?

🔎 Se você pesquisar, encontrará desvantagens como violação do Princípio da Responsabilidade Única, quebra do Princípio Aberto/Fechado e acoplamento elevado. Quando foi criado em 1944 (80 anos atrás, no livro “Design Patterns: Elements of Reusable Object-Oriented Software”), não tínhamos os recursos que as linguagens modernas oferecem. As desvantagens eram menores que as vantagens que o padrão resolvia. Com os avanços tecnológicos, o Singleton passou a oferecer mais desvantagens que vantagens, daí sua restrição de uso ou até ser citado como anti-pattern, porem ainda é usado e necessário em diversos cenários.

O Singleton pode ser útil em situações específicas, como no gerenciamento de conexões com bancos de dados, onde é importante garantir que apenas uma conexão seja usada. Mas como fazemos isso? Incorporando esse padrão em uma interface de uso ou em outros padrões.

Existem várias alternativas ao Singleton que podem ser mais adequadas dependendo do contexto do seu projeto:

Injeção de Dependência: Em vez de usar um Singleton, injete a dependência necessária em cada classe que a utiliza. Isso facilita o teste e reduz o acoplamento entre classes.

Fábrica (Factory): Cria instâncias de objetos conforme necessário, sem garantir que apenas uma instância exista. Útil para criar objetos complexos de maneira controlada.

Provedor de Serviços (Service Locator): Fornece uma maneira de obter instâncias de serviços sem usar Singletons diretamente. Pode ser configurado para fornecer instâncias únicas ou múltiplas conforme necessário.

🔥 Em resumo, o padrão Singleton é apenas mal interpretado. Continua firme e forte, mas cada vez mais “escondido” do que há 80 anos. Saiba usá-lo e por quê, mas com moderação.

E se nada disso fizer sentido para você, talvez possamos concordar que a versão líquida do tema seja mais fácil de engolir.


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

HealthCheck – O que você precisa e deve saber antes de usar

A observabilidade nos aplicativos aliadas a outras ferramentas e recursos ajudam a sustentar vários indicadores de qualidade e disponibilidade, quando feita de maneira harmoniosa e correta entre todos seus elementos, sendo apoiada por três pilares : monitoramento , registro e rastreamento.  O efeito positivo da observabilidade afeta diretamente a disponibilidade

A Síndrome do Pato Flutuante na Era da IA

Precisamos ser cada vez mais humanos para sermos mais estratégicos com o uso da IA. Delegar para IA : Um caminho Insufiente Muitas empresas estão delegando a adoção de IA para suas áreas de tecnologia. À primeira vista, isso pode parecer lógico, mas será que é suficiente? Os impactos da

A importância de ter uma arquitetura de referência

Um assunto recorrente, mas o que vem a ser isso ? Talvez seja mais simples dizer o que não é…. 📌 Não é uma design de arquitetura 📌 Não é um padrão arquitetural   Dizer que você usa como padrão uma “arquitetura cebola” ou um padrão de “Arquitetura limpa” ou

Capitão Nascimento em T.I

Imagina se o capitão Nascimento (Tropa de Elite) fosse da área de tecnologia da informação… Divirta-se! “Esse papo de consciência social é uma puta de uma hipocrisia. Pra mim, traficante é traficante”. Capitão Nascimento Esse papo de consciência de um bug critico estar no backlog é uma puta de uma hipocrisia. Pra

"Impor uma única escolha de complexidade acidental é um erro, pois assume que todos os problemas de negócio são mais bem resolvidos da mesma forma."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x