Sobes.tech
Junior — Middle

Proqramlaşdırmada interceptor anlayışının nə olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Interceptor (araya sokucu) — proqramlaşdırma nümunəsidir ki, bu da metod çağırışlarını və ya mesajların işlənməsini ələ keçirərək, əsas kodu dəyişdirmədən əlavə məntiq əlavə etməyə imkan verir.

C# dilində, interceptor tez-tez aspekt yönümlü proqramlaşdırma (AOP) kontekstində və ya proxy obyektləri ilə işləyərkən istifadə olunur. Məsələn, metod çağırışlarını qeyd etmək, icazələri yoxlamaq, keşik etmək və ya istisnaları idarə etmək üçün ələ keçirilə bilər.

Castle DynamicProxy ilə interceptor istifadəsinə nümunə:

public class LoggingInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        Console.WriteLine($"{invocation.Method.Name} metodunun çağırışı başladı");
        invocation.Proceed(); // orijinal metodu çağır
        Console.WriteLine($"{invocation.Method.Name} metodunun çağırışı sona çatdı");
    }
}

// Proxy və interceptor yaratmaq
var proxyGenerator = new ProxyGenerator();
var myService = proxyGenerator.CreateInterfaceProxyWithTarget<IMyService>(new MyService(), new LoggingInterceptor());

myService.SomeMethod();

Bu şəkildə, interceptor metod çağırışlarının ətrafına əlavə davranışlar əlavə etməyə imkan verir, bununla da onların həyata keçirilməsini dəyişdirmədən.