Sobes.tech
Senior

Çərəzə inteqrasiya üçün hansı yanaşmalar mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Tətbiqin əsasına bağlılıq injeksiyası üçün aşağıdakı əsas yanaşmalar mövcuddur:

  • Konstruktor vasitəsilə injeksiya (Constructor Injection): Bağlılıqlar sinifin konstruktor parametrləri kimi ötürülür. Bu ən tövsiyə olunan yanaşmadır, çünki bağlılıqları açıq edir və sinfə lazım olan bütün bağlılıqları almağı məcbur edir.

    public class MyService
    {
        private readonly IDependency _dependency;
    
        public MyService(IDependency dependency)
        {
            _dependency = dependency;
        }
    
        public void DoWork()
        {
            _dependency.Execute();
        }
    }
    
  • Xüsusiyyətlər vasitəsilə injeksiya (Property Injection): Bağlılıqlar sinfin ümumi xüsusiyyətlərinə təyin edilir. Daha az tövsiyə olunur, çünki bağlılıqlar könüllü ola bilər, bu da sinfin lazım olan komponentlərini anlamağı çətinləşdirir. Tez-tez könüllü bağlılıqlar və ya digər yanaşmalar ilə birlikdə istifadə olunur.

    public class AnotherService
    {
        public IDependency Dependency { get; set; }
    
        public void DoWork()
        {
            Dependency?.Execute(); // null yoxlaması vacibdir
        }
    }
    
  • Yöntəm vasitəsilə injeksiya (Method Injection): Bağlılıqlar müəyyən bir metodun parametrləri kimi ötürülür. Bu, yalnız müəyyən bir əməliyyatı yerinə yetirmək üçün bağlılıq lazım olduqda uyğundur.

    public class YetAnotherService
    {
        public void DoWork(IDependency dependency)
        {
            dependency.Execute();
        }
    }
    

Yanaşmanın seçimi bağlılığın xarakterinə və sinfin istifadə kontekstinə bağlıdır. Konstruktor vasitəsilə injeksiya, məcburi bağlılıqlar üçün faktik standartdır.