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");