λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Λογισμικό Utility

Γιατί τα εξαρτήματα ελέγχου είναι απαραίτητα στο παραδοσιακό λογισμικό και γενικά δεν απαιτείται λογισμικό με αντικειμενικό προσανατολισμό;

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

Εδώ είναι μια κατανομή:

Παραδοσιακό (διαδικαστικό/δομημένο) Λογισμικό:

* Δομές ρητών ελέγχου: Τα στοιχεία ελέγχου είναι συχνά πολύ σαφείς στον διαδικαστικό προγραμματισμό. Πράγματα όπως οι δηλώσεις `if-else ',` για' και `ενώ οι βρόχοι, οι δηλώσεις` goto` (αν και αποθαρρύνονται), και οι κλήσεις λειτουργίας υπαγορεύουν άμεσα τη ροή εκτέλεσης. Ο προγραμματιστής ελέγχει άμεσα την ακολουθία των εργασιών.

* Παγκόσμιες μεταβλητές και κοινά δεδομένα: Ο έλεγχος συχνά ασκείται με χειρισμό παγκόσμιων μεταβλητών ή κοινόχρηστων δομών δεδομένων. Ένα μέρος του προγράμματος μπορεί να τροποποιήσει μια παγκόσμια μεταβλητή, ενεργοποιώντας μια αλλαγή στη συμπεριφορά ενός άλλου τμήματος. Αυτό μπορεί να οδηγήσει σε πολυπλοκότητα και δυσκολία στη διαχείριση της ροής ελέγχου.

* υπορουτίνες/λειτουργίες: Οι λειτουργίες λειτουργούν ως συστατικά ελέγχου με ενθυλάκωση μιας συγκεκριμένης εργασίας και ελέγχοντας την εκτέλεση εντός αυτής της εργασίας. Ωστόσο, η συνολική ροή παραμένει σε μεγάλο βαθμό υπαγορευμένη από την κύρια δομή του προγράμματος.

αντικειμενοστραφεί λογισμικό:

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

* Προγραμματισμός που βασίζεται σε συμβάντα: Πολλά αντικειμενικά συστήματα χρησιμοποιούν αρχιτεκτονικές που βασίζονται σε γεγονότα. Τα συμβάντα (όπως τα κλικ των χρηστών, τα μηνύματα δικτύου, οι λήξεις χρονοδιακόπτη) ενεργοποιούν τις ενέργειες σε αντικείμενα. Η ροή ελέγχου οδηγείται από αυτά τα εξωτερικά συμβάντα και όχι από μια γραμμική ακολουθία που υπαγορεύεται από τον προγραμματιστή.

* Σχέδια σχεδίου: Τα αντικειμενικά προσανατολισμένα πρότυπα σχεδιασμού, όπως το κράτος, η στρατηγική και τα πρότυπα εντολών, παρέχουν δομημένους τρόπους διαχείρισης και ελέγχου της ροής εκτέλεσης μέσα σε ένα σύστημα. Αυτά λειτουργούν ως μηχανισμοί ελέγχου υψηλότερου επιπέδου.

* Συμφωνία και MultithReading: Τα αντικειμενικά προσανατολισμένα συστήματα συχνά εκμεταλλεύονται τα νήματα ή τις διαδικασίες, που απαιτούν μηχανισμούς (όπως mutexes, σηματοφόρα) για τον έλεγχο της ταυτόχρονης πρόσβασης σε κοινούς πόρους και τη διαχείριση του συγχρονισμού, τα οποία αποτελούν κρίσιμα συστατικά ελέγχου.

Η βασική διαφορά:

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

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα