Sobes.tech
Junior — Middle

Welche Methoden können verwendet werden, um eine ähnliche Funktionalität ohne Vererbung in Datenstrukturen zu implementieren?

sobes.tech KI

Antwort von AI

Anstelle von Vererbung in Datenstrukturen kann man Komposition und Protokolle (Schnittstellen) verwenden. Zum Beispiel verwenden Swift häufig Protokolle, um Verhalten zu beschreiben, und konkrete Strukturen implementieren diese Protokolle, was eine starre Vererbungs-Hierarchie vermeidet.

Man kann auch das Delegationsmuster verwenden, bei dem eine Struktur eine Referenz auf eine andere enthält, die die benötigte Funktionalität implementiert.

Beispiel in Swift mit Verwendung von Protokoll und Komposition:

protocol Drawable {
    func draw()
}

struct Circle: Drawable {
    func draw() {
        print("Zeichne Kreis")
    }
}

struct Square: Drawable {
    func draw() {
        print("Zeichne Quadrat")
    }
}

struct Canvas {
    var shape: Drawable
    func render() {
        shape.draw()
    }
}

let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render()  // Gibt aus: Zeichne Kreis

Auf diese Weise wird die Funktionalität durch Komposition und Protokolle umgesetzt, nicht durch Vererbung.