Junior — Middle
Kādas ir atšķirības starp Singleton un Prototype redzesloku kontekstā atkarību injekcijās?
sobes.tech AI
Atbilde no AI
Zatvarājas atkarībā injekcijas kontekstā, scope (apgabals) nosaka objektu dzīves ciklu un to izveidoto eksemplāru skaitu.
-
Singleton: objekts tiek izveidots vienreiz visa lietojumprogrammas vai DI konteinera dzīves cikla laikā. Visas pieprasījumi šai atkarībai saņem to pašu eksemplāru. Tas ir ērti pakalpojumiem, kuriem jāuztur stāvoklis vai jābūt koplietojamiem.
-
Prototype: katru pieprasījumu tiek izveidots jauns objekta eksemplārs. Tas ir noderīgi, ja nepieciešams neatkarīgs objekts ar savu stāvokli.
Piemērs:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// viens eksemplārs visai lietojumprogrammai
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// jauns eksemplārs katram pieprasījumam
}
Tādējādi, Singleton nodrošina vienu eksemplāru, bet Prototype – vairākus neatkarīgus eksemplārus, kas ietekmē stāvokļa pārvaldību un lietojumprogrammas veiktspēju.