Junior — Middle
Proqram kodunda asılılıqların injeksiyası prinsipini və onun üstünlüklərini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Asılılıqların injektsiyası (Dependency Injection, DI) — bu, obyektin asılılıqlarını xaricdən alan və öz-özünə yaratmayan dizayn nümunəsidir. Bu, kodun modulluğunu və test edilə bilməsini artırır.
DI-nin üstünlükləri:
- Testləri asanlaşdırır — asılılıqları asanlıqla mock və ya stub ilə dəyişdirmək mümkündür.
- Zayıf bağlılıq — sinflər konkret tətbiqlərə deyil, yalnız abstraksiyalara bağlıdır.
- Əlavə elastiklik — asılılıqların tətbiqlərini dəyişdirmək, istifadəçinin kodunu dəyişdirmədən asandır.
C#-da asılılığı konstruktor vasitəsilə injektsiya etmək nümunəsi:
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) // asılılıq konstruktor vasitəsilə injektsiya edilir
{
_logger = logger;
}
public void CreateUser(string name)
{
// istifadəçi yaratma loqikası
_logger.Log($"İstifadəçi {name} yaradıldı.");
}
}
// İstifadə:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");