Sobes.tech
Junior — Middle

¿Qué se entiende por concepto de composición en programación orientada a objetos?

sobes.tech AI

Respuesta de la IA

En la programación orientada a objetos, la composición es un principio en el que un objeto contiene referencias a otros objetos para utilizar su funcionalidad. Es una forma de construir objetos complejos a partir de otros más simples, donde un objeto "consta" de otros.

La composición se diferencia de la herencia en que, en lugar de extender una clase mediante herencia, un objeto incluye otros objetos y delegales parte del trabajo. Esto aumenta la flexibilidad y la reutilización del código.

Ejemplo en Swift:

class Engine {
    func start() {
        print("Motor encendido")
    }
}

class Car {
    private let engine = Engine()  // composición: Car contiene Engine

    func startCar() {
        engine.start()  // delegamos el arranque del motor
    }
}

let car = Car()
car.startCar()  // Mostrará: Motor encendido

Aquí, la clase Car está compuesta por un objeto Engine y utiliza sus métodos, sin heredar de él.