Sobes.tech
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.