Junior — Middle
Dasturlashda interceptor tushunchasi nima ekanligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Interceptor (interceptor) — bu dasturlashda ishlatiladigan shablon bo‘lib, metod chaqiruvlarini yoki xabarlarni qayd qilish uchun qo‘llaniladi, bu esa asosiy kodni o‘zgartirmasdan qo‘shimcha logika qo‘shishga imkon beradi.
C# tilida interceptor ko‘pincha aspektga yo‘naltirilgan dasturlash (AOP) kontekstida yoki proksi ob'ektlar bilan ishlashda qo‘llaniladi. Masalan, metod chaqiruvlarini log qilish, ruxsatlarni tekshirish, kechiktirish yoki istisnolarni boshqarish uchun foydalanish mumkin.
Castle DynamicProxy bilan interceptordan foydalanish misoli:
public class LoggingInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine($"{invocation.Method.Name} metodi chaqiruvi boshlandi");
invocation.Proceed(); // asl metodni chaqirish
Console.WriteLine($"{invocation.Method.Name} metodi chaqiruvi yakunlandi");
}
}
// Proxy va interceptor yaratish
var proxyGenerator = new ProxyGenerator();
var myService = proxyGenerator.CreateInterfaceProxyWithTarget<IMyService>(new MyService(), new LoggingInterceptor());
myService.SomeMethod();
Shu tarzda, interceptor metod chaqiruvlari atrofida qo‘shimcha xulqni kiritish imkonini beradi, bu esa ularning realizatsiyasini o‘zgartirmasdan amalga oshiriladi.