Ana içeriğe geç
Programlama

Değiştirilebilir ve değiştirilemez veri yapıları neden alt tür ilişkisi kuramaz

Öne çıkanlar

  • Liskov ikame ilkesi, bir alt türün üst türün tüm davranışsal sözleşmelerini eksiksiz karşılamasını zorunlu kılıyor.
  • Değiştirilemez yapılar güvenli karma hesaplama için gereken sabitlik garantisini sağlar.
  • Tip sınıfları ve arayüzler, alt tür ilişkisi kurmadan ortak okuma işlemlerini güvenle soyutluyor.

Programlama dillerinde değiştirilebilir (mutable) ve değiştirilemez (immutable) veri yapılarının birbirinin alt türü veya üst türü olarak tanımlanmaması konusu tartışılıyor. Bir veri türünün diğerinin yerine geçmesi, Liskov ikame ilkesi gereğince katı kurallara dayanıyor. Değiştirilemez bir yapı değiştirilebilir beklenen yerde kullanılamıyor çünkü güncelleme işlemlerini desteklemiyor.

Değiştirilebilir bir yapının değiştirilemez yerine geçmesi ise davranışsal sözleşmeyi ihlal ediyor. Değiştirilemez yapılar, içeriğin hiçbir zaman değişmeyeceğini garanti ettiği için güvenli karma değeri (hash) hesaplama ve önbellekleme imkanı sunuyor. Değiştirilebilir bir yapı bu konuma yerleştirildiğinde iç durumu değişebileceğinden, derleyicinin sunduğu tip güvenliği garantileri ortadan kalkıyor.

Tip sistemleri bu ayrımı çözmek için ad-hoc çokbiçimlilik ve tip sınıfları (type classes) gibi araçlara başvuruyor. Ortak bir arayüz veya özellik (trait) tanımlandığında her iki yapı da temel okuma işlemlerini paylaşabiliyor. Bu yaklaşım, dillerin hiyerarşik alt tür ilişkisi kurmadan iki farklı veri türünü güvenle desteklemesine olanak tanıyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.