Sobes.tech
Junior — Middle

Czym jest koncepcja kompozycji w programowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

W programowaniu obiektowym, kompozycja jest zasadą, według której jeden obiekt zawiera odwołania do innych obiektów, aby korzystać z ich funkcjonalności. To sposób budowania złożonych obiektów z prostszych, gdzie jeden obiekt "składa się" z innych.

Kompozycja różni się od dziedziczenia tym, że zamiast rozszerzać klasę przez dziedziczenie, obiekt zawiera inne obiekty i deleguje im część pracy. To zwiększa elastyczność i ponowne użycie kodu.

Przykład w Swift:

class Engine {
    func start() {
        print("Silnik uruchomiony")
    }
}

class Car {
    private let engine = Engine()  // kompozycja: Car zawiera Engine

    func startCar() {
        engine.start()  // delegujemy uruchomienie silnika
    }
}

let car = Car()
car.startCar()  // Wyświetli: Silnik uruchomiony

Tutaj klasa Car składa się z obiektu Engine i korzysta z jego metod, nie dziedzicząc po nim.