Junior — Middle
Дар мафҳуми вурудоти вобаста ба Dependency Injection, чӣ фарқият байни ҳудуди Singleton ва Prototype вуҷуд дорад؟
sobes.tech AI
Ҷавоб аз AI
Дар контексти на инжекција на зависности, scope (областа) одредува циклусот на живот и бројот на создадените објекти.
-
Singleton: објектот се создава еднаш за целиот циклус на живот на апликацијата или DI контејнерот. Сите барања за оваа зависност добиваат иста инстанца. Ова е погодна за услуги кои треба да ја зачуваат состојбата или да бидат споделени.
-
Prototype: при секое барање се создава нова инстанца на објектот. Ова е корисно кога е потребен независен објект со сопствена состојба.
Пример:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// една инстанца за целата апликација
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// нова инстанца при секое барање
}
На овој начин, Singleton обезбедува единствена инстанца, додека Prototype нуди повеќе независни инстанци, што влијае врз управувањето со состојбата и перформансите на апликацијата.