Sobes.tech
Junior — Middle

Mis vahe on Singleton ja Prototype vahemikul sõltuvuste süstimise kontekstis?

sobes.tech AI

Vastus AI-lt

Kontekstis sõltuvuste injekteerimisel määrab scope (ulatus) objektide elutsükli ja loodavate eksemplaride arvu.

  • Singleton: objekt luuakse üks kord kogu rakenduse või DI konteineri elutsükli jooksul. Kõik sellele sõltuvusele esitatavad taotlused saavad sama eksemplari. See on mugav teenustele, mis peavad säilitama olekut või olema jagatud.

  • Prototype: iga taotluse korral luuakse uus objekti eksemplar. See on kasulik, kui on vaja sõltumatut objekti oma olekuga.

Näide:

// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
    // üks eksemplar kogu rakenduse jaoks
}

// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
    // uus eksemplar iga taotluse korral
}

Sellisel viisil tagab Singleton ühe eksemplari, samas kui Prototype pakub mitmeid sõltumatuid eksemplare, mis mõjutab oleku haldamist ja rakenduse jõudlust.