Junior — Middle
¿Qué métodos se pueden usar para implementar una funcionalidad similar sin usar herencia en estructuras de datos?
sobes.tech AI
Respuesta de la IA
En lugar de herencia en las estructuras de datos, se puede utilizar composición y protocolos (interfaces). Por ejemplo, en Swift, a menudo se utilizan protocolos para describir comportamientos, y las estructuras concretas implementan estos protocolos, lo que permite evitar una jerarquía de herencia rígida.
También se puede usar el patrón de delegación, donde una estructura contiene una referencia a otra que implementa la funcionalidad necesaria.
Ejemplo en Swift usando protocolo y composición:
protocol Drawable {
func draw()
}
struct Circle: Drawable {
func draw() {
print("Dibujando un círculo")
}
}
struct Square: Drawable {
func draw() {
print("Dibujando un cuadrado")
}
}
struct Canvas {
var shape: Drawable
func render() {
shape.draw()
}
}
let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render() // Mostrará: Dibujando un círculo
De esta manera, la funcionalidad se implementa mediante composición y protocolos, en lugar de herencia.