Sobes.tech
Junior — Middle

Bağımlılık enjeksiyonu kavramını açıklayabilir misiniz ve bunun programlamada neden gerekli olduğunu?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bağımlılık Enjeksiyonu (Dependency Injection, DI), nesnelere ihtiyaç duydukları bağımlılıkları dışarıdan iletmeyi sağlayan tasarım desenidir; bu, nesnelerin içinde bağımlılıkları oluşturmaktan ziyade, dışarıdan verilmesini sağlar. Bu, modülerliği artırır, testi ve kodun bakımını kolaylaştırır.

Örneğin, bir iOS uygulamasında, ViewController sınıfınızın NetworkService adlı bir servise bağımlılığı olduğunu düşünün. NetworkService'i ViewController içinde oluşturmak yerine, yapıcı veya özellik aracılığıyla geçersiniz:

class NetworkService {
    func fetchData() { /* ... */ }
}

class ViewController {
    let networkService: NetworkService

    init(networkService: NetworkService) {
        self.networkService = networkService
    }

    func loadData() {
        networkService.fetchData()
    }
}

// Kullanım:
let service = NetworkService()
let vc = ViewController(networkService: service)

Bu yaklaşım, NetworkService'in testler sırasında kolayca sahte bir nesne ile değiştirilmesine olanak tanır ve mimarinin esnekliğini artırır.