Questão FC373907
O padrão de projeto Singleton
Padrões de Projeto (Engenharia de Software)
FCC · 2022
O padrão de projeto Singleton
- pertence à categoria de padrões comportamentais, tendo por objetivo garantir que um objeto tenha apenas uma instância, enquanto provê um ponto de acesso global para essa instância.
- cria um método Singleton() cujo construtor deve ser público. Um construtor público não permite que a classe seja instanciada a não ser que seja feito através do método getInstance() que é privado e pode ser acessado de qualquer outra classe.
- permite que a classe seja acessada de qualquer lugar no programa. Contudo, ele permite que a instância dessa classe possa ser sobrescrita por outro código.
- é indicado quando uma classe no programa deve ter apenas uma instância disponível para todos os clientes. Por exemplo, para controlar o acesso a uma base de dados única compartilhada por diferentes partes do programa.
- garante que o objeto Singleton seja inicializado cada vez que for instanciado. Isso também garante que o princípio de responsabilidade única seja respeitado.
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
O padrão Singleton é indicado quando uma classe deve ter uma instância única disponível para todos os clientes do sistema, oferecendo um ponto de acesso global. Um exemplo típico é o gerenciamento de uma base de dados compartilhada, onde manter uma única conexão/gerenciador evita desperdício de recursos e garante consistência de estado.
Na prática, implementa‑se com um construtor privado e um método estático como getInstance() que controla a criação da instância (lazy ou eager). Em ambientes concorrentes, é preciso tratar thread‑safety (por exemplo, sincronização ou double‑checked locking).
Vantagens: reduz custo de criação, centraliza configuração e garante consistência. Atenção: o uso excessivo cria acoplamento global e pode dificultar testes; em muitos casos, injeção de dependência é alternativa mais flexível.
Conteúdo do catálogo FC Concursos · Atualizado em