Junior — Middle
Կարող եք բացատրել, թե ինչ է ենթադրում interceptor կոնցեպտը ծրագրավորման մեջ?
sobes.tech AI
Պատասխան AI-ից
Ինտերպետոր (միջնորդ) — ծրագրավորման նմուշ է, որը թույլ է տալիս միջնորդել մեթոդների կանչերը կամ հաղորդագրությունների մշակումը՝ ավելացնելով լրացուցիչ տրամաբանություն առանց հիմնական կոդը փոխելու:
C#-ում, ինտերպետորը հաճախ օգտագործվում է կողմնորոշված կողմնորոշման ծրագրավորման (AOP) կոնտեքստում կամ պրոքսի օբյեկտների հետ աշխատելիս: Օրինակ, կարող եք միջնորդել մեթոդների կանչերը՝ գրանցման, մուտքի իրավունքների ստուգման, կեշավորման կամ արտահայտությունների մշակման համար:
Castle DynamicProxy-ով ինտերպետոր օգտագործելու օրինակ:
public class LoggingInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine($"{invocation.Method.Name} մեթոդի կանչումը սկսվեց");
invocation.Proceed(); // սկզբնական մեթոդի կանչը
Console.WriteLine($"{invocation.Method.Name} մեթոդի կանչումը ավարտվեց");
}
}
// պրոքսի և ինտերպետոր ստեղծում
var proxyGenerator = new ProxyGenerator();
var myService = proxyGenerator.CreateInterfaceProxyWithTarget<IMyService>(new MyService(), new LoggingInterceptor());
myService.SomeMethod();
Այսպիսով, ինտերպետորը թույլ է տալիս ավելացնել լրացուցիչ վարքագիծ մեթոդների կանչերի շուրջ՝ առանց նրանց իրականացմանը փոխելու։