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