Ο αντικειμενοστρεφής προγραμματισμός είναι ένα κοινό παράδειγμα που χρησιμοποιείται στην ανάπτυξη λογισμικού. Το αντικείμενο είναι μια παρουσία μιας κλάσης που δημιουργείται από τις κλάσεις. Τα αντικείμενα συνεργάζονται μεταξύ τους μέσω των συνδέσμων. Οι σύνδεσμοι είναι η φυσική και εννοιολογική σύνδεση μεταξύ αντικειμένων. Μια συλλογή συνδέσμων που έχουν παρόμοια δομή και σημασιολογία περιγράφεται ως ένωση .
Συγκριτικό διάγραμμα
Βάση σύγκρισης | Συσσωμάτωση | Σύνθεση |
---|---|---|
Βασικός | Συνολικά υπάρχει μια σχέση όπου ένα παιδί μπορεί να υπάρξει ανεξάρτητα από τον γονέα. | Στη σύνθεση δεν μπορεί να υπάρξει ανεξάρτητα από τον γονέα. |
Τύπος σχέσης | "έχει ένα" | "μέρος του" |
Τύπος σύνδεσης | Αδύναμη ένωση | Ισχυρή σχέση |
Σύμβολο σχεδιασμού UML | Αντιπροσωπεύεται από ένα κοίλο διαμάντι δίπλα στην τάξη συναρμολόγησης. | Αντιπροσωπεύεται από ένα συμπαγές διαμάντι δίπλα στην τάξη συναρμολόγησης. |
Λειτουργία | Η διαγραφή της συναρμολόγησης δεν επηρεάζει τα μέρη της. | Εάν το κύριο αντικείμενο κλάσης διαγραφεί, θα μπορούσε να επηρεάσει σημαντικά το αντικείμενο τάξης που περιέχει. |
Ορισμός της συσσωμάτωσης
Η συσσωμάτωση μπορεί να οριστεί ως σχέση με μια τάξη συναρμολόγησης στην τάξη συστατικών. Η σχέση μεταξύ δύο αντικειμένων μπορεί να αναπαρασταθεί με το σχεδιασμό ενός τμήματος γραμμής σε UML (Unified Modeling Language).
Για παράδειγμα, ένα αυτοκίνητο αποτελείται από τροχούς, κινητήρα, κιβώτιο ταχυτήτων, σύστημα διεύθυνσης, κύριο σώμα κλπ. Ένα αυτοκίνητο είναι ένα συγκρότημα και τα άλλα μέρη αποτελούν τα συστατικά του. Το αυτοκίνητο στους τροχούς είναι μια συνάθροιση, το αυτοκίνητο προς τους κινητήρες είναι μια άλλη συνάθροιση, και ούτω καθεξής. Κάθε μεμονωμένη αντιστοίχιση ορίζεται για να προσδιορίσει την πολλαπλότητα κάθε συστατικού μέρους μέσα στο συγκρότημα ως αποτέλεσμα, ο αριθμός αντικειμένων μπορεί επίσης να απεικονιστεί.
Η συνάθροιση είναι ένας τύπος συσχέτισης που περιγράφει έναν τύπο σχέσης "έχει ένα" μεταξύ των αντικειμένων. Για παράδειγμα, ένα αυτοκίνητο "έχει" κιβώτιο ταχυτήτων, και ένα αυτοκίνητο "έχει" κινητήρα . Για τη σχέση "ένας προς πολλούς", ένα παράδειγμα είναι ένα αυτοκίνητο "έχει" πολλούς τροχούς .
Ορισμός της σύνθεσης
Η σύνθεση είναι επίσης ένας τύπος συσχέτισης, αλλά μια πιο περιοριστική μορφή. Παρουσιάζεται στο UML από ένα μικρό στερεό διαμάντι δίπλα στην τάξη συναρμολόγησης.
Έτσι, η σύνθεση σημαίνει ιδιοκτησία του συστατικού μέρους του συνόλου. Αυτό τελικά θα αυξήσει την ευκολία για τον προγραμματισμό. Η σύνθεση μπορεί να προκαλέσει τη διαγραφή του συστατικού αντικειμένου με τη διαγραφή ενός αντικειμένου συναρμολόγησης.
Η σύνθεση περιγράφει μια σχέση "μέρους" . Για παράδειγμα, ένα φύλλο είναι μέρος ενός δέντρου, αν το δέντρο καταστραφεί, τότε τα φύλλα πρέπει να καταστραφούν.
Βασικές διαφορές μεταξύ συσσωμάτωσης και σύνθεσης
- Η συσσωμάτωση υποδηλώνει μια σχέση όπου ένα παιδί και οι γονείς μπορούν να υπάρχουν ανεξάρτητα. Αντιθέτως, στη σύνθεση, η οντότητα του παιδιού εξαρτάται από τον γονέα.
- Σε συνάρτηση υπάρχει μια σχέση "έχει μια", ενώ στη σύνθεση υπάρχει μια σχέση "μέρους" μεταξύ των αντικειμένων συναρμολόγησης και συστατικών τάξεων.
- Η συσσωμάτωση είναι αδύναμη συσχέτιση ενώ η σύνθεση είναι μια ισχυρή ένωση επειδή έχει περισσότερους περιορισμούς.
- Στο σχεδιασμό UML η συσσωμάτωση περιγράφεται από ένα κοίλο διαμάντι. Αντίθετα, η σύνθεση απεικονίζεται από ένα στερεό διαμάντι.
συμπέρασμα
Συνολικά, τα συστατικά μέρη έχουν την ανεξάρτητη ύπαρξη και μπορούν να μοιραστούν ή να εκχωρηθούν σε συσσωματώματα ή στη συναρμολόγησή τους. Από την άλλη πλευρά, στη σύνθεση, το συστατικό τμήμα ανήκει ακριβώς σε ένα συγκρότημα ή ένα σύνολο. Επιπλέον, το τμήμα δημιουργείται όταν σχηματίζεται το συσσωμάτωμα και το τμήμα καταστρέφεται όταν το αδρανές καταστρέφεται.