Sobes.tech
Junior — Middle

O que se entende por conceito de composição na programação orientada a objetos?

sobes.tech IA

Resposta da IA

Na programação orientada por objetos, a composição é um princípio em que um objeto contém referências a outros objetos para usar a sua funcionalidade. É uma forma de construir objetos complexos a partir de objetos mais simples, onde um objeto "é composto" por outros.

A composição difere da herança no sentido de que, em vez de estender uma classe por herança, um objeto inclui outros objetos e delega-lhes parte do trabalho. Isto aumenta a flexibilidade e a reutilização do código.

Exemplo em Swift:

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

class Car {
    private let engine = Engine()  // composição: Car contém Engine

    func startCar() {
        engine.start()  // delega o arranque do motor
    }
}

let car = Car()
car.startCar()  // Vai mostrar: Motor ligado

Aqui, a classe Car é composta por um objeto Engine e usa os seus métodos, sem herdar dele.