Sobes.tech
Senior

Millised on lähenemisviisid tuuma sisestamiseks?

sobes.tech AI

Vastus AI-lt

Siin on peamised lähenemisviisid sõltuvuste juurutamiseks rakenduse tuuma:

  • Konstruktoripõhine süstimine (Constructor Injection): Sõltuvused edastatakse klassi konstruktoriparameetritena. See on soovitatav lähenemisviis, kuna see muudab sõltuvused selgeks ja sunnib klassi saama kõik vajalikud sõltuvused loomise ajal.

    public class MyService
    {
        private readonly IDependency _dependency;
    
        public MyService(IDependency dependency)
        {
            _dependency = dependency;
        }
    
        public void DoWork()
        {
            _dependency.Execute();
        }
    }
    
  • Omaduste kaudu süstimine (Property Injection): Sõltuvused määratakse klassi avalikele omadustele. Vähem soovitatav, kuna sõltuvused võivad olla valikulised, mis raskendab vajalike komponentide mõistmist. Sageli kasutatakse valikuliste sõltuvuste või koos teiste lähenemisviisidega.

    public class AnotherService
    {
        public IDependency Dependency { get; set; }
    
        public void DoWork()
        {
            Dependency?.Execute(); // null kontroll on oluline
        }
    }
    
  • Meetodi argumentide kaudu süstimine (Method Injection): Sõltuvused edastatakse konkreetse meetodi parameetritena. Sobib, kui sõltuvus on vajalik ainult teatud operatsiooni jaoks.

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

Valitud lähenemisviis sõltub sõltuvuse olemusest ja kasutuskontekstist klassi. Konstruktoripõhine süstimine on standard enamikul juhtudel, kui sõltuvused on kohustuslikud.