ԻոՍԿ կոնտեյներում օբյեկտների կյանքի տարբեր տեսակներ կան և ինչպես են դրանք կիրառվում:
sobes.tech AI
Պատասխան AI-ից
IoC (Inversion of Control) կոնտեյներներում սովորաբար օգտագործվում են հետևյալ օբյեկտների կյանքի ցիկլի տեսակները՝
-
Transient (Տեղեկատվական) — յուրաքանչյուր պահանջի դեպքում կոնտեյները ստեղծում է նոր օբյեկտի օրինակ։ Օգտագործվում է, երբ անհրաժեշտ է յուրաքանչյուր գործողության համար նոր օբյեկտ։
-
Singleton (Միայնակ) — կոնտեյները առաջին պահանջի ժամանակ ստեղծում է օբյեկտի օրինակ և այն վերադարձնում բոլոր հաջորդ պահանջների համար։ Համապատասխանում է այն ծառայություններին, որոնց վիճակը կամ ռեսուրսները պետք է լինեն յուրահատուկ։
-
Scoped (Համապատասխան) — օբյեկտը ստեղծվում է մեկ անգամ սահմանված scope-ի համար (օրինակ՝ վեբ հավելվածում յուրաքանչյուր պահանջի համար) և օգտագործվում է այդ scope-ի շրջանակում։ Scope-ի ավարտից հետո օբյեկտը ոչնչացվում է։
Օրինակ C#-ում՝ օգտագործելով Microsoft.Extensions.DependencyInjection.
services.AddTransient<IService, Service>(); // նոր օբյեկտ յուրաքանչյուր պահանջի համար
services.AddSingleton<IService, Service>(); // մեկ օբյեկտ ամբողջ հավելվածի կյանքի ընթացքում
services.AddScoped<IService, Service>(); // մեկ օբյեկտ յուրաքանչյուր HTTP պահանջի համար
Ընտրությունը կախված է օբյեկտի վիճակի պահանջներից և հավելվածի կատարողականությունից։