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.