Sobes.tech
Junior — Middle

Hogyan valósítható meg a Singleton minta egy modern függőségkezelőben?

sobes.tech MI

Válasz az MI-től

A modern dependency injection konténerekben (pl. Spring, CDI) a Singleton minta a konténer konfigurációján keresztül valósul meg, amely kezeli az objektum életciklusát és garantálja, hogy csak egy példány jöjjön létre.

Például Springben az összetevők alapértelmezés szerint singletonok. Elég egy összetevőt deklarálni:

@Component
public class MySingletonService {
    // logika
}

A konténer létrehoz egy példányt a MySingletonService-ből, és mindenhol használni fogja, ahol szükséges.

Ha az összetevőt kézzel hozza létre, meg lehet adni a singleton tartományt:

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

Így a singleton regisztrációja annyiban korlátozódik, hogy egy komponens deklarálása singleton tartományban történik, és a konténer garantálja az egyediséget és kezeli az életciklusát.