Junior — Middle
Veri yapılarında kalıtım kullanmadan benzer bir işlevsellik nasıl gerçekleştirilebilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Veri yapılarında kalıtım yerine, bileşim ve protokoller (arayüzler) kullanılabilir. Örneğin, Swift'te davranışı tanımlamak için sıkça protokoller kullanılır ve somut yapılar bu protokolleri uygular, bu da katı bir kalıtım hiyerarşisinden kaçınmayı sağlar.
Ayrıca, bir yapının başka bir yapıya referans içerdiği ve gerekli işlevselliği sağlayan yapıya delegasyon deseni de kullanılabilir.
Swift'te protokol ve bileşim kullanımıyla örnek:
protocol Drawable {
func draw()
}
struct Circle: Drawable {
func draw() {
print("Daire çiziliyor")
}
}
struct Square: Drawable {
func draw() {
print("Kare çiziliyor")
}
}
struct Canvas {
var shape: Drawable
func render() {
shape.draw()
}
}
let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render() // Çıktı: Daire çiziliyor
Bu şekilde, fonksiyonellik bileşim ve protokoller aracılığıyla uygulanır, kalıtım yerine.