Rifat Akarca Blog

Cache Remove Aspect Nedir?

136 Okunma 30.10.2024
Cache Remove Aspect Nedir?

Cache remove aspect, bir web uygulamasında önbellek (cache) temizleme işlemlerinin merkezi bir noktadan yönetilmesini sağlayan bir tasarım kalıbıdır.

Cache remove aspect, Aspect Oriented Programming (AOP) ile uygulanabilir. AOP, kesişen ilgiler (cross cutting concerns) olarak adlandırılan, uygulamanın farklı katmanlarında ortak olarak kullanılan işlemlerin merkezi bir noktadan yönetilmesini sağlayan bir programlama paradigmasıdır.

Cache remove aspect, AOP’nin bir uygulaması olarak, önbellek temizleme işlemlerini yönetir.

Örneğin, bir web sitesinde veri tabanından gelen verilerin önbelleğe alınması ve güncellendiğinde önbellekten silinmesi gibi işlemler cache remove aspect ile gerçekleştirilebilir.

Cache remove aspect, genellikle veri erişim katmanında veya iş katmanında belirli metotların çağrılması sırasında devreye girer.

Cache remove aspect, Interceptor adı verilen yapılarla uygulanabilir. 

Interceptor, metot çağrımları sırasında araya girerek kesişen ilgileri işletmemizi ve yönetmemizi sağlamaktadır.

public class CacheRemoveAspect : MethodInterception
{
    private readonly string _pattern;
    private readonly ICacheManager? _cacheManager;

    public CacheRemoveAspect(string pattern)
    {
        _pattern = pattern;
        _cacheManager = ServiceTool.ServiceProvider!.GetService<ICacheManager>();
    }

    protected override void OnSuccess(IInvocation invocation)
    {
        _cacheManager!.RemoveByPattern(_pattern);
    }
}