Sobes.tech
Junior — Middle

Aký je rozdiel medzi oblasťou viditeľnosti Singleton a Prototype v kontexte injekcií závislostí?

sobes.tech AI

Odpoveď od AI

V kontexte injekcie závislostí určuje scope (rozsah) životný cyklus a počet vytváraných objektov.

  • Singleton: objekt je vytvorený raz počas celého životného cyklu aplikácie alebo DI kontajnera. Všetky požiadavky na túto závislosť dostanú rovnakú inštanciu. To je vhodné pre služby, ktoré musia zachovávať stav alebo byť zdieľané.

  • Prototype: pri každej požiadavke je vytvorená nová inštancia objektu. To je užitočné, keď je potrebný nezávislý objekt s vlastným stavom.

Príklad:

// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
    // jedna inštancia pre celú aplikáciu
}

// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
    // nová inštancia pri každej požiadavke
}

Týmto spôsobom Singleton zabezpečuje jedinú inštanciu, zatiaľ čo Prototype poskytuje viac nezávislých inštancií, čo ovplyvňuje správu stavu a výkon aplikácie.