Sobes.tech
Junior — Middle

Como implementar o padrão Singleton num contêiner de dependências moderno?

sobes.tech IA

Resposta da IA

Nos contêineres de dependências modernos (por exemplo, Spring, CDI), o padrão Singleton é implementado através da configuração do contêiner, que gerencia o ciclo de vida do objeto e garante que apenas uma instância seja criada.

No Spring, por exemplo, os beans são singletons por padrão. Basta declarar um bean:

@Component
public class MySingletonService {
    // lógica
}

O contêiner criará uma instância de MySingletonService e a usará em todos os lugares onde for necessária.

Se o bean for criado manualmente, pode-se especificar o escopo singleton:

@Bean
@Scope("singleton")
public MySingletonService mySingletonService() {
    return new MySingletonService();
}

Assim, o registro do singleton reduz-se a declarar um componente com escopo singleton, e o contêiner garante a unicidade da instância e gerencia seu ciclo de vida.