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.