UML (Unified Modeling Language): Ποια είναι η κύρια διαφορά μεταξύ μιας σύνθεσης, μιας συνάθροισης και μιας συσχέτισης;


Απάντηση 1:
  • Ένωση - Οι συνδεδεμένοι φορείς έχουν τους δικούς τους κύκλους ζωής και μπορούν να δημιουργηθούν και να καταστραφούν ανεξάρτητα ο ένας από τον άλλο. Για παράδειγμα, ένας Πελάτης και μια Παραγγελία είναι ανεξάρτητα αντικείμενα, αλλά μπορούν να συνδέονται μεταξύ τους ("Ο Πελάτης τοποθετεί μια Παραγγελία"). Η συσσωμάτωση είναι μια ισχυρότερη μορφή σύνδεσης και δηλώνει τη σχέση "έχει". Για παράδειγμα, "Ένα άτομο έχει μια διεύθυνση". Εδώ, η διάρκεια ζωής του περιεχομένου (Διεύθυνση) δεν διαχειρίζεται ο γονέας του (Πρόσωπο.) Η σύνθεση είναι μια ισχυρότερη μορφή Συγκέντρωσης και υποδηλώνει τη σχέση "μερικής". Για παράδειγμα, "Ένας κινητήρας είναι μέρος του αυτοκινήτου". Εδώ, το αντικείμενο που περιέχεται δεν μπορεί να ζει έξω από το γονικό αντικείμενο.

Απάντηση 2:

Μια από τις πιο συνηθισμένες ερωτήσεις κατά την εκμάθηση της UML.

Ο σύλλογος είναι ο πιο γενικός όρος. Υπάρχει μια συσχέτιση όταν δύο τάξεις συνεργάζονται μεταξύ τους ανταλλάσσοντας μηνύματα. Αυτό είναι όλο.

Όταν δύο ή περισσότερες τάξεις αντιμετωπίζονται σαν μια μονάδα, μπορούμε να μιλήσουμε για συσσωμάτωση ή σύνθεση. Και οι δύο είναι συγκεκριμένοι τύποι ενώσεων, όπου ο σύνδεσμος σύνδεσης έχει δύο άκρες: το «ολόκληρο» και το «μέρος» τέλος.

Επιτρέψτε μου να επεξηγήσω τη διαφορά μεταξύ συσσωμάτωσης και σύνθεσης με δύο παραδείγματα:

Η κλάση Circle έχει σχέση με την κλάση Point. Ο Κύκλος χρησιμοποιεί το Point για να κρατήσει τα κεντρικά του κορδόνια. Όταν ο χρήστης δημιουργεί ένα στιγμιότυπο του Circle, δεν γνωρίζει ότι υπάρχει επίσης μια εμφάνιση Point (χάρη στην ενθυλάκωση). Ο Κύκλος είναι το σύνολο και το Σημείο, η εγκλωβισμένη τάξη, είναι το μέρος. Η παράμετρος Σημείο μόνο είναι χρήσιμη για την περιεκτικότητά της σε Circle και όταν ο Κύκλος καταστρέφεται, το Σημείο εξαφανίζεται επίσης. Αυτή είναι μια Σύνθεση. Στις συνθέσεις το σύνολο είναι ο ιδιοκτήτης του τμήματος: Το σύνολο δημιουργεί και καταστρέφει το μέρος, επειδή το μέρος δεν έχει καμία χρήση έξω από το σύνολο.

Υπάρχουν και άλλες περιστάσεις όταν το σύνολο δεν μπορεί (ή δεν πρέπει) να καταστρέψει το μέρος του. Ας πούμε ότι έχουμε μια τάξη υπαλλήλων. σε αυτή την περίπτωση θέλουμε να εντοπίσουμε τις πράξεις που έγιναν σε οποιαδήποτε από τις περιπτώσεις του, έτσι συσχετίζουμε μια κλάση καταγραφέα σε αυτήν. Σε αυτή την περίπτωση, ο Εργοδοτούμενος είναι το σύνολο και ο Λογαριασμός είναι το μέρος, αλλά δεδομένου ότι η καταχώρηση Logger χρησιμοποιείται από άλλες περιπτώσεις άλλων τάξεων στο πρόγραμμά μου, δεν είναι καλή ιδέα να καταστραφεί, ούτε η κλάση Employee δημιούργησε την εμφάνισή της. Ίσως η παράμετρος Logger ήταν μια παράμετρος για τον κατασκευαστή του εργοδοτούμενου, ή είχε εκχωρηθεί εσωτερικά από ένα παγκοσμίως ορατό singleton. Στην προκειμένη περίπτωση, το σύνολο δεν ελέγχει τον κύκλο ζωής του μέρους του, είναι ανεξάρτητα το ένα από το άλλο. Στην περίπτωση αυτή έχουμε μια συνένωση.

Ο τρόπος με τον οποίο το σύνολο χειρίζεται τον κύκλο ζωής των τμημάτων του είναι αυτό που διαφοροποιεί την συσσωμάτωση από τη σύνθεση: Στη σχέση σύνθεσης είναι το σύνολο αυτό που δημιουργεί / καταστρέφει τα τμήματα των περιπτώσεων, ενώ στις σχέσεις συσσωμάτωσης το σύνολο χρησιμοποιεί ακριβώς το μέρος εμπλεγμένος)


Απάντηση 3:

Μια από τις πιο συνηθισμένες ερωτήσεις κατά την εκμάθηση της UML.

Ο σύλλογος είναι ο πιο γενικός όρος. Υπάρχει μια συσχέτιση όταν δύο τάξεις συνεργάζονται μεταξύ τους ανταλλάσσοντας μηνύματα. Αυτό είναι όλο.

Όταν δύο ή περισσότερες τάξεις αντιμετωπίζονται σαν μια μονάδα, μπορούμε να μιλήσουμε για συσσωμάτωση ή σύνθεση. Και οι δύο είναι συγκεκριμένοι τύποι ενώσεων, όπου ο σύνδεσμος σύνδεσης έχει δύο άκρες: το «ολόκληρο» και το «μέρος» τέλος.

Επιτρέψτε μου να επεξηγήσω τη διαφορά μεταξύ συσσωμάτωσης και σύνθεσης με δύο παραδείγματα:

Η κλάση Circle έχει σχέση με την κλάση Point. Ο Κύκλος χρησιμοποιεί το Point για να κρατήσει τα κεντρικά του κορδόνια. Όταν ο χρήστης δημιουργεί ένα στιγμιότυπο του Circle, δεν γνωρίζει ότι υπάρχει επίσης μια εμφάνιση Point (χάρη στην ενθυλάκωση). Ο Κύκλος είναι το σύνολο και το Σημείο, η εγκλωβισμένη τάξη, είναι το μέρος. Η παράμετρος Σημείο μόνο είναι χρήσιμη για την περιεκτικότητά της σε Circle και όταν ο Κύκλος καταστρέφεται, το Σημείο εξαφανίζεται επίσης. Αυτή είναι μια Σύνθεση. Στις συνθέσεις το σύνολο είναι ο ιδιοκτήτης του τμήματος: Το σύνολο δημιουργεί και καταστρέφει το μέρος, επειδή το μέρος δεν έχει καμία χρήση έξω από το σύνολο.

Υπάρχουν και άλλες περιστάσεις όταν το σύνολο δεν μπορεί (ή δεν πρέπει) να καταστρέψει το μέρος του. Ας πούμε ότι έχουμε μια τάξη υπαλλήλων. σε αυτή την περίπτωση θέλουμε να εντοπίσουμε τις πράξεις που έγιναν σε οποιαδήποτε από τις περιπτώσεις του, έτσι συσχετίζουμε μια κλάση καταγραφέα σε αυτήν. Σε αυτή την περίπτωση, ο Εργοδοτούμενος είναι το σύνολο και ο Λογαριασμός είναι το μέρος, αλλά δεδομένου ότι η καταχώρηση Logger χρησιμοποιείται από άλλες περιπτώσεις άλλων τάξεων στο πρόγραμμά μου, δεν είναι καλή ιδέα να καταστραφεί, ούτε η κλάση Employee δημιούργησε την εμφάνισή της. Ίσως η παράμετρος Logger ήταν μια παράμετρος για τον κατασκευαστή του εργοδοτούμενου, ή είχε εκχωρηθεί εσωτερικά από ένα παγκοσμίως ορατό singleton. Στην προκειμένη περίπτωση, το σύνολο δεν ελέγχει τον κύκλο ζωής του μέρους του, είναι ανεξάρτητα το ένα από το άλλο. Στην περίπτωση αυτή έχουμε μια συνένωση.

Ο τρόπος με τον οποίο το σύνολο χειρίζεται τον κύκλο ζωής των τμημάτων του είναι αυτό που διαφοροποιεί την συσσωμάτωση από τη σύνθεση: Στη σχέση σύνθεσης είναι το σύνολο αυτό που δημιουργεί / καταστρέφει τα τμήματα των περιπτώσεων, ενώ στις σχέσεις συσσωμάτωσης το σύνολο χρησιμοποιεί ακριβώς το μέρος εμπλεγμένος)


Απάντηση 4:

Μια από τις πιο συνηθισμένες ερωτήσεις κατά την εκμάθηση της UML.

Ο σύλλογος είναι ο πιο γενικός όρος. Υπάρχει μια συσχέτιση όταν δύο τάξεις συνεργάζονται μεταξύ τους ανταλλάσσοντας μηνύματα. Αυτό είναι όλο.

Όταν δύο ή περισσότερες τάξεις αντιμετωπίζονται σαν μια μονάδα, μπορούμε να μιλήσουμε για συσσωμάτωση ή σύνθεση. Και οι δύο είναι συγκεκριμένοι τύποι ενώσεων, όπου ο σύνδεσμος σύνδεσης έχει δύο άκρες: το «ολόκληρο» και το «μέρος» τέλος.

Επιτρέψτε μου να επεξηγήσω τη διαφορά μεταξύ συσσωμάτωσης και σύνθεσης με δύο παραδείγματα:

Η κλάση Circle έχει σχέση με την κλάση Point. Ο Κύκλος χρησιμοποιεί το Point για να κρατήσει τα κεντρικά του κορδόνια. Όταν ο χρήστης δημιουργεί ένα στιγμιότυπο του Circle, δεν γνωρίζει ότι υπάρχει επίσης μια εμφάνιση Point (χάρη στην ενθυλάκωση). Ο Κύκλος είναι το σύνολο και το Σημείο, η εγκλωβισμένη τάξη, είναι το μέρος. Η παράμετρος Σημείο μόνο είναι χρήσιμη για την περιεκτικότητά της σε Circle και όταν ο Κύκλος καταστρέφεται, το Σημείο εξαφανίζεται επίσης. Αυτή είναι μια Σύνθεση. Στις συνθέσεις το σύνολο είναι ο ιδιοκτήτης του τμήματος: Το σύνολο δημιουργεί και καταστρέφει το μέρος, επειδή το μέρος δεν έχει καμία χρήση έξω από το σύνολο.

Υπάρχουν και άλλες περιστάσεις όταν το σύνολο δεν μπορεί (ή δεν πρέπει) να καταστρέψει το μέρος του. Ας πούμε ότι έχουμε μια τάξη υπαλλήλων. σε αυτή την περίπτωση θέλουμε να εντοπίσουμε τις πράξεις που έγιναν σε οποιαδήποτε από τις περιπτώσεις του, έτσι συσχετίζουμε μια κλάση καταγραφέα σε αυτήν. Σε αυτή την περίπτωση, ο Εργοδοτούμενος είναι το σύνολο και ο Λογαριασμός είναι το μέρος, αλλά δεδομένου ότι η καταχώρηση Logger χρησιμοποιείται από άλλες περιπτώσεις άλλων τάξεων στο πρόγραμμά μου, δεν είναι καλή ιδέα να καταστραφεί, ούτε η κλάση Employee δημιούργησε την εμφάνισή της. Ίσως η παράμετρος Logger ήταν μια παράμετρος για τον κατασκευαστή του εργοδοτούμενου, ή είχε εκχωρηθεί εσωτερικά από ένα παγκοσμίως ορατό singleton. Στην προκειμένη περίπτωση, το σύνολο δεν ελέγχει τον κύκλο ζωής του μέρους του, είναι ανεξάρτητα το ένα από το άλλο. Στην περίπτωση αυτή έχουμε μια συνένωση.

Ο τρόπος με τον οποίο το σύνολο χειρίζεται τον κύκλο ζωής των τμημάτων του είναι αυτό που διαφοροποιεί την συσσωμάτωση από τη σύνθεση: Στη σχέση σύνθεσης είναι το σύνολο αυτό που δημιουργεί / καταστρέφει τα τμήματα των περιπτώσεων, ενώ στις σχέσεις συσσωμάτωσης το σύνολο χρησιμοποιεί ακριβώς το μέρος εμπλεγμένος)