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.