Sobes.tech
Junior — Middle

Program kodunda bağımlılık enjeksiyonu ilkesini ve avantajlarını açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Bağımlılık Enjeksiyonu (Dependency Injection, DI), bir nesnenin bağımlılıklarını kendi başına oluşturmak yerine dışarıdan aldığı tasarım desenidir. Bu, kodun modülerliğini ve test edilebilirliğini artırır.

DI'nin avantajları:

  • Testleri kolaylaştırır — bağımlılıkları kolayca mock veya stub ile değiştirebilirsiniz.
  • Zayıf bağlılık — sınıflar, somut uygulamalara değil, sadece soyutlamalara bağlıdır.
  • Esneklik artar — bağımlılıkların uygulamalarını değiştirmek, tüketici kodunu değiştirmeden kolaydır.

C#'ta bağımlılığı enjekte etmek için yapıcı kullanımıyla bir örnek:

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) // bağımlılık yapıcı aracılığıyla enjekte edilir
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // kullanıcı oluşturma mantığı
        _logger.Log($"Kullanıcı {name} oluşturuldu.");
    }
}

// Kullanım:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");