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();
Мындайча айтканда, интерцептор метод чакырууларынын тегерегинде кошумча жүрүм-турумду киргизүүгө мүмкүндүк берет, алардын ишке ашырылышын өзгөртпөстөн.