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
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 30 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

Guardrails Arquiteturais

Guardrails Arquiteturais definem os princípios de segurança, conformidade e eficiência garantem uma infraestrutura sólida e bem direcionada para o negócio. Um dos papeis da arquitetura corporativa é o manter os conceito de guardrails. Uma visão mais holística da infraestrutura e suas relações com o impacto financeiro , continuidade do negócio

Na alta performance não existe vaidade

Cesar Cielo, em seu livro 101% cunhou o titulo deste post. Liderança é um dos atributos de soft skills desejados no mundo corporativo e pode ser treinado e aperfeiçoado.  Uma das características deste atributo é que mesmo com treinamento a liderança não se sustenta pela imposição. Liderança se conquista no

IA e o terno feito sobre medida

Só quem já vestiu um terno feito sobre medida feito por um bom alfaiate sabe a diferença de usar um terno comprado em uma loja. No mercado de TI, a personalização e a adaptação às necessidades específicas de cada empresa são igualmente relevantes para o sucesso. Não basta simplesmente replicar

"A Inteligência artificial deixa de ser apenas um elemento tecnológico que afeta a produtividade nas empresas e indústrias. Passar a ser um agente ativo e interativo na nossa sociedade."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x