Sobes.tech
Junior — Middle

Τι εννοείται με την έννοια της σύνθεσης στον αντικειμενοστραφή προγραμματισμό;

sobes.tech AI

Απάντηση από AI

Στον αντικειμενοστραφή προγραμματισμό, η σύνθεση είναι μια αρχή κατά την οποία ένα αντικείμενο περιέχει αναφορές σε άλλα αντικείμενα για να χρησιμοποιήσει τη λειτουργικότητά τους. Είναι ένας τρόπος να κατασκευάσουμε πολύπλοκα αντικείμενα από απλούστερα, όπου ένα αντικείμενο "αποτελείται" από άλλα.

Η σύνθεση διαφέρει από την κληρονομικότητα στο ότι, αντί να επεκτείνουμε μια κλάση μέσω κληρονομικότητας, ένα αντικείμενο περιλαμβάνει άλλα αντικείμενα και τους αναθέτει μέρος της εργασίας. Αυτό αυξάνει την ευελιξία και την επανάχρηση κώδικα.

Παράδειγμα σε Swift:

class Engine {
    func start() {
        print("Ο κινητήρας ξεκίνησε")
    }
}

class Car {
    private let engine = Engine()  // σύνθεση: Το Car περιέχει τον κινητήρα

    func startCar() {
        engine.start()  // αναθέτουμε την εκκίνηση του κινητήρα
    }
}

let car = Car()
car.startCar()  // Θα εμφανίσει: Ο κινητήρας ξεκίνησε

Εδώ, η κλάση Car αποτελείται από ένα αντικείμενο Engine και χρησιμοποιεί τις μεθόδους του, χωρίς να κληρονομεί από αυτό.