Кадом роҳҳо барои воридшавӣ ба ядро вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
Маъзулотҳои асосии зерин барои ворид кардани вобастагиҳо ба ядрои барнома мавҷуданд:
-
Ворид кардан тавассути конструктор (Constructor Injection): Вобастагиҳо ҳамчун параметрҳои конструктори синф гузошта мешаванд. Ин усул беҳтарин тавсия дода мешавад, зеро вобастагиҳоро равшан мекунад ва синфро маҷбур мекунад, ки ҳама вобастагиҳои заруриро дар вақти эҷод қабул кунад.
public class MyService { private readonly IDependency _dependency; public MyService(IDependency dependency) { _dependency = dependency; } public void DoWork() { _dependency.Execute(); } } -
Ворид кардан тавассути хусусиятҳо (Property Injection): Вобастагиҳо ба хусусиятҳои умумии синф гузошта мешаванд. Ин усул камтар тавсия дода мешавад, зеро вобастагиҳо метавонанд ихтиёрӣ бошанд, ки ин дар фаҳмидани компонентҳои зарурии синф мушкилӣ меорад. Бештар барои вобастагиҳои ихтиёрӣ ё дар ҳамоҳангӣ бо усулҳои дигар истифода мешавад.
public class AnotherService { public IDependency Dependency { get; set; } public void DoWork() { Dependency?.Execute(); // санҷиши null муҳим аст } } -
Ворид кардан тавассути аргументии метод (Method Injection): Вобастагиҳо ҳамчун параметрҳои як методи махсус гузошта мешаванд. Ин усул мувофиқ аст, вақте вобастагӣ танҳо барои иҷрои як амали муайян зарур аст.
public class YetAnotherService { public void DoWork(IDependency dependency) { dependency.Execute(); } }
Интихоби усул аз табиати вобастагӣ ва контексти истифодаи синф вобаста аст. Ворид кардан тавассути конструктор дар асоси стандарти воқеӣ барои вобастагиҳои ҳатмӣ мебошад.