Junior — Middle
Sistem tasarımında bağımlılıkların tersine çevrilmesi ilkesine uyumu sağlayan yaklaşımlar ve teknikler nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Sistem tasarımında Bağımlılıkların Ters Çevirisi İlkesi (Dependency Inversion Principle), aşağıdaki yaklaşımlar ve teknikler kullanılarak elde edilir:
- Somut uygulamalar yerine soyutlamaların kullanılması. Sınıflar, somut sınıflar yerine arayüzlere veya soyut sınıflara bağımlı olmalıdır.
- Bağımlılık Enjeksiyonu (Dependency Injection). Bağımlılıklar, sınıfa dışarıdan (yapıcı, özellikler veya metodlar aracılığıyla) geçirilir ve içinde oluşturulmaz.
- Kontrolün Tersine Çevrilmesi (IoC). Nesnelerin oluşturulması ve bağlanması üzerindeki kontrol, dış bir konteyner veya çerçeveye devredilir.
C# örneği ile bağımlılık enjeksiyonu:
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ık dışarıdan geçirilir
}
public void CreateUser(string name)
{
// kullanıcı oluşturma mantığı
_logger.Log($"Kullanıcı {name} oluşturuldu.");
}
}
Bu yaklaşım, testleri, genişletilebilirliği ve kodun bakımını kolaylaştırır.