Sobes.tech
Junior — Middle

Come implementare il pattern Singleton in un contenitore di dipendenze moderno?

sobes.tech AI

Risposta dell'AI

Nei contenitori di dipendenza moderni (ad esempio, Spring, CDI), il pattern Singleton viene implementato tramite la configurazione del contenitore, che gestisce il ciclo di vita dell'oggetto e garantisce che venga creata solo un'istanza.

In Spring, ad esempio, i bean sono singleton per impostazione predefinita. Basta dichiarare un bean:

@Component
public class MySingletonService {
    // logica
}

Il contenitore creerà un'istanza di MySingletonService e la utilizzerà ovunque sia richiesta.

Se il bean viene creato manualmente, è possibile specificare l'ambito singleton:

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

In questo modo, la registrazione del singleton si riduce alla dichiarazione di un componente con ambito singleton, e il contenitore garantisce l'unicità dell'istanza e gestisce il suo ciclo di vita.