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.