Sobes.tech
Junior — Middle

Programlamada statik ve dinamik yönlendirme nasıl farklılık gösterir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Statik dağıtım (static dispatch), derleme sırasında gerçekleşir. Derleyici hangi metodun çağrılacağını önceden bilir ve çağrıyı doğrudan belirli bir uygulama ile bağlar. Bu yüksek performans sağlar, ancak esnekliği azaltır.

Dinamik dağıtım (dynamic dispatch), program çalıştırılırken gerçekleşir. Metot çağrısı, nesnenin türüne göre çalışma zamanında belirlenir, bu da çok biçimlilik ve metodların yeniden tanımlanmasını mümkün kılar. iOS'ta bu genellikle Objective-C çalışma zamanı mekanizması aracılığıyla gerçekleştirilir, burada metod çağrıları mesaj tablosu üzerinden yapılır.

Swift'te örnek:

class Animal {
    func sound() {
        print("Bir ses")
    }
}

class Dog: Animal {
    override func sound() {
        print("Havlama")
    }
}

let animal: Animal = Dog()
animal.sound() // Dinamik dağıtım sayesinde "Havlama" yazdırır

Burada sound() çağrısı çalışma zamanında belirlenir, bu da dinamik dağıtım anlamına gelir.