Junior — Middle
Dasturlash kodida bog'liqliklarni injektsiya qilish tamoyilini va uning asosiy maqsadini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Bağımlılık Enjeksiyonu (Dependency Injection, DI) — bu, obyektin öz bağımlılıqlarını özünün yaratmadığı, əksinə xaricdən aldığı bir nümunədir. Bu, kodun modulallığını, test ediləbilənliyini və çevikliyini artırır.
DI-nin əsas məqsədi:
- Məsuliyyətlərin bölünməsi: sinif öz bağımlılıqlarını yaratmaqdan məsul deyil.
- Testlərin sadələşdirilməsi: bağımlılıqları mock və ya stub ilə əvəz etmək olar.
- Çevikliyin artırılması: bağımlılıqların həyata keçirilməsini asanlıqla dəyişmək mümkündür, sinifi dəyişmədən.
C#-də nümunə, konstruktor istifadə edilərək:
public interface ILogger {
void Log(string message);
}
public class ConsoleLogger : ILogger {
public void Log(string message) {
Console.WriteLine(message);
}
}
public class UserService {
private readonly ILogger _logger;
public UserService(ILogger logger) {
_logger = logger; // bağımlılıq xaricdən enjekte edilir
}
public void CreateUser(string name) {
// istifadəçi yaradılması loqikası
_logger.Log($"İstifadəçi {name} yaradıldı.");
}
}
// UserService yaradılarkən, lazım olan ILogger tətbiqi ötürülür
var service = new UserService(new ConsoleLogger());