Η διαφορά ανάμεσα σε ένα παθητικό αντικείμενο και ένα ενεργό αντικείμενο στο UML

...

Το UML βοηθά στην απλοποίηση της αναπαράστασης της εσωτερικής λογικής ενός προγράμματος.

Η "Unified Modeling Language," ή UML, είναι μια γλώσσα που έχει σχεδιαστεί για να δείχνει πώς είναι οργανωμένο το λογισμικό. Οι μηχανικοί μπορούν να χρησιμοποιήσουν το UML για να σχεδιάσουν τη ροή των πληροφοριών σε ένα πρόγραμμα, επιτρέποντάς τους να κατανοήσουν καλύτερα πώς μπορεί να απλοποιηθεί ή να αλλάξει. Κατά τη μοντελοποίηση της ροής πληροφοριών, η UML διακρίνει μεταξύ "ενεργών αντικειμένων" που μπορούν να ξεκινήσουν αυτή τη ροή και "παθητικά αντικείμενα" που δεν μπορούν.

Αντικείμενα και Τάξεις

Όταν πρόκειται για τον λεγόμενο «αντικειμενοστραφή» προγραμματισμό, η επιστήμη των υπολογιστών διαφοροποιεί μεταξύ ενός «αντικειμένου» και μιας «τάξης». Μια τάξη είναι α γενικευμένη περιγραφή ενός συνόλου πραγμάτων—όπως μεταβλητές ή μέθοδοι—ενώ ένα «αντικείμενο» είναι ένα «στιγμιότυπο» αυτής της κλάσης, με το δικό του μοναδικό ιδιότητες. Σκεφτείτε τις τάξεις ως σχέδιο ή πρότυπο. στον φυσικό κόσμο, το "εργαλείο γραφής" μπορεί να θεωρηθεί τάξη, με παραδείγματα "στυλό" ή "πορτοκαλί κραγιόν" των "αντικειμένων" του συγκεκριμένου τύπου κλάσης.

Το βίντεο της ημέρας

Αντικείμενα σε UML

Η UML διατηρεί μια παρόμοια διάκριση μεταξύ κλάσεων και αντικειμένων και αναπαρίστανται με τον ίδιο τρόπο. Οι κλάσεις UML περιέχουν ευρείες περιγραφές και τα αντικείμενα UML περιέχουν συγκεκριμένες τιμές που αντιπροσωπεύουν περιπτώσεις αυτών των περιγραφών. Ως εκ τούτου, τυπικά μιλώντας, ένα "ενεργό αντικείμενο" στο UML είναι οποιοδήποτε παράδειγμα μιας "ενεργητικής κλάσης" και ομοίως ένα "παθητικό αντικείμενο" είναι ένα παράδειγμα μιας "παθητικής κλάσης"—σε θεωρητική έννοια, θα μπορούσατε να θεωρήσετε ότι αυτοί οι όροι είναι ουσιαστικά ανταλλάξιμος.

Ενεργά Αντικείμενα

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

Παθητικά αντικείμενα

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