Sobes.tech
Junior — Middle

Comment implémenter le pattern Singleton dans un conteneur de dépendances moderne?

sobes.tech IA

Réponse de l'IA

Dans les conteneurs de dépendances modernes (par exemple, Spring, CDI), le motif Singleton est implémenté via la configuration du conteneur, qui gère le cycle de vie de l'objet et garantit qu'une seule instance sera créée.

Dans Spring, par exemple, les beans sont par défaut des singletons. Il suffit de déclarer un bean:

@Component
public class MySingletonService {
    // logique
}

Le conteneur créera une instance de MySingletonService et l'utilisera partout où cela est nécessaire.

Si le bean est créé manuellement, il est possible de spécifier la portée singleton:

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

Ainsi, l'enregistrement du singleton se résume à déclarer un composant avec une portée singleton, et le conteneur garantit l'unicité de l'instance et gère son cycle de vie.