Βασική διαφορά: Η αφαίρεση και η ενθυλάκωση είναι έννοιες προγραμματισμού επιστήμης ηλεκτρονικών υπολογιστών. Μια αφαίρεση είναι μια διαδικασία στην οποία τα επιπλέον χαρακτηριστικά των δεδομένων αφαιρούνται ή διαχωρίζονται από τα δεδομένα. ενώ η ενθυλάκωση είναι ένας μηχανισμός στον οποίο τα δεδομένα είναι κρυμμένα και συνυφασμένα με μεθόδους.
Η αφαίρεση είναι μια γενικευμένη διαδικασία στην οποία τα επιπλέον δεδομένα αφαιρούνται και αφαιρούνται προκειμένου να καταστούν συγκεκριμένα τα δεδομένα. Στους υπολογιστές, είναι μια μέθοδος προγραμματισμού που βοηθά στη μετατροπή των δεδομένων σε μια συνοπτική μορφή. Τα δεδομένα και το πρόγραμμα δεν αλλάζουν σε αυτή τη μέθοδο, αλλά διατηρούνται στην ίδια αρχική μορφή. η μόνη διαφορά είναι ότι μειώνονται σε μικρότερη εμφανή μορφή. Η αφαίρεση προσπαθεί να μειώσει και να εξευγενίσει τις λεπτομέρειες, έτσι ώστε ο προγραμματιστής να μπορεί να εστιάσει σε μερικές έννοιες κάθε φορά.
Ένα σύστημα μπορεί να έχει πολλά τέτοια στρώματα αφαίρεσης, τα οποία έχουν διαφορετικές σημασίες και λεπτομέρειες. Για παράδειγμα, τα στρώματα αφαίρεσης χαμηλού επιπέδου εκθέτουν λεπτομέρειες του υλικού του υπολογιστή όπου εκτελείται το πρόγραμμα, ενώ τα υψηλού επιπέδου επίπεδα ασχολούνται με την επιχειρησιακή λογική του προγράμματος. Αυτές οι λεπτομέρειες εκτίθενται στη συνέχεια στον προγραμματιστή τη στιγμή της εκτέλεσης. Η αφαίρεση είναι μια ιδέα ή μια ιδέα, η οποία δεν συνδέεται με κάποια συγκεκριμένη περίπτωση. Αποτυπώνει μόνο τις λεπτομέρειες των δεδομένων που αφορούν τους στόχους και τις τρέχουσες προοπτικές της. Παίζει σημαντικό ρόλο στην οικογένεια των αντικειμένων (στις έννοιες του Αντικειμενοστρεφούς Προγραμματισμού). και χρησιμοποιείται με διαφορετικούς τρόπους και υλοποιήσεις.
Η έννοια της αφαίρεσης μπορεί να εφαρμοστεί σε:
- Έλεγχος αφαίρεσης: Είναι η αφαίρεση των ενεργειών.
- Απεικόνιση δεδομένων: Επιτρέπει και χειρίζεται τα bits δεδομένων και τις δομές δεδομένων με ουσιαστικούς τρόπους.
Η ενθυλάκωση στον προγραμματισμό ηλεκτρονικών υπολογιστών αναδεικνύει τις λειτουργίες του σε δύο διαφορετικές σημειώσεις:
- Ένας μηχανισμός γλώσσας ο οποίος περιορίζει την πρόσβαση στα στοιχεία ενός αντικειμένου.
- Ένα γλωσσικό κατασκεύασμα που διευκολύνει την ομαδοποίηση δεδομένων με τις μεθόδους (και άλλες λειτουργίες) που λειτουργούν σε αυτά τα δεδομένα.
Ο εγκλωβισμός είναι οι μηχανισμοί κρύβονται, οι οποίοι διαδραματίζουν ζωτικό ρόλο στην προστασία και την εξασφάλιση των δεδομένων από τους ξένους. Παρέχει στην πραγματικότητα τη βασική ακεραιότητα των δεδομένων, εμποδίζοντας την κακή χρήση πραγματικών δεδομένων. Κατά την ενθυλάκωση, τα δεδομένα αποθηκεύονται και έχουν πρόσβαση στην αρχική έγκυρη και συνεπή μορφή τους.
Γενικά, η ενθυλάκωση σημαίνει την διατήρηση ενός αντικειμένου από τον χρήστη και την απεικόνισή του σε μια γενική μορφή. Βασικά, στην ενσωμάτωση, οι επιπλέον λεπτομέρειες είναι κρυμμένες από το εξωτερικό περιβάλλον. Τα πεδία αντικειμένων ελέγχονται και χειραγωγούνται απευθείας σε αυτόν τον μηχανισμό. Οι πληροφορίες που κρύβονται μαζί με την επίπλωση καταρτίζονται σε μια έκδοση, η οποία χρησιμοποιείται περαιτέρω ως πηγαίος κώδικας και διασυνδέεται μέσω ενός αρχείου κεφαλίδας. Μερικές φορές, οι δημόσιες τάξεις προσπαθούν να έχουν πρόσβαση στα δεδομένα, σε αυτές τις περιπτώσεις η ενθυλάκωση δεν επιτρέπει στους δημόσιους εισβολείς να παίζουν με τα δεδομένα. Ένα από τα σημαντικότερα οφέλη της ενσωμάτωσης είναι ότι συμβάλλει στη μείωση της πολυπλοκότητας ενός προγράμματος και βοηθά τους χρήστες να κατανοήσουν τις ακριβείς έννοιες του προγράμματος, καθώς οι μηχανισμοί αντιπροσωπεύουν μόνο τη συνοπτική μορφή του προγράμματος. Αυτό αυξάνει την ευρωστία, επιτρέποντας στον προγραμματιστή ή τον προγραμματιστή να περιορίσει τις αλληλεξαρτήσεις μεταξύ των εξαρτημάτων του λογισμικού. Η ενθυλάκωση εφαρμόζεται επίσης σε ορισμένες γλώσσες, όπως το Smalltalk και το Ruby, στις οποίες η πρόσβαση επιτρέπεται μόνο μέσω αντικειμενικών μεθόδων. ενώ οι περισσότεροι άλλοι συμπαθούν, C ++, C # ή Java προσφέρει ένα βαθμό ελέγχου στον προγραμματιστή. Αυτές οι γλώσσες επιτρέπουν στους προγραμματιστές να έχουν πρόσβαση σε αυτά που αποκρύπτονται με τη βοήθεια λέξεων-κλειδιών όπως οι δημόσιες και ιδιωτικές.
Η Αφαίρεση και η Ενθυλάκωση είναι επίσης βασικά θεμελιώδη στοιχεία του OOP (Object-Oriented-Programming).
Σύγκριση μεταξύ αφαίρεσης και εγκλεισμού:
Αφαίρεση | Ενθυλάκωση | |
Σύντομη περιγραφή | Η αφαίρεση είναι μια διαδικασία που εξάγει τις βασικές λεπτομέρειες ενός στοιχείου ή μιας ομάδας αντικειμένων και αγνοεί τις μη ουσιαστικές λεπτομέρειες. | Η ενθυλάκωση είναι μια διαδικασία που περιτυλίγει ή περικλείει τα δεδομένα σε μια κάψουλα ή καθιστά τα δεδομένα συνοπτικά. |
Αυτοί είναι | Η αφαίρεση σχετίζεται με την ιδέα της απόκρυψης δεδομένων που δεν χρειάζονται για παρουσίαση. | Η ενθυλάκωση συγκεντρώνει τα δεδομένα και τη λειτουργικότητα. |
Βασικές λειτουργίες | Βασικά, η αφαίρεση χρησιμοποιείται για την απόκρυψη των ανεπιθύμητων δεδομένων και δίνει τα σχετικά δεδομένα. | Βασικά, η ενθυλάκωση σημαίνει ότι κρύβεται ο κώδικας και τα δεδομένα σε μια ενιαία μονάδα, προκειμένου να προστατευτούν τα δεδομένα από τον έξω κόσμο. |
Πότε λειτουργούν | Λειτουργεί το πρόβλημα σε επίπεδο σχεδιασμού. | Λειτουργεί το πρόβλημα στο επίπεδο υλοποίησης. |
Ευεργετική για τους ρόλους | Βοηθάει τον χρήστη να εστιάσει σε αυτό που κάνει το αντικείμενο αντί για το πώς κάνει οποιαδήποτε λειτουργία. | Βοηθά τον προγραμματιστή να κρύβει τις εσωτερικές λεπτομέρειες ή τους μηχανικούς για το πώς ένα αντικείμενο κάνει κάτι. |
Οι πληροφορίες είναι | Εδώ οι πληροφορίες διαχωρίζονται από τα πραγματικά δεδομένα. | Εδώ οι πληροφορίες είναι τυλιγμένες σε μια κρυφή μορφή. |
Διατάξεις | Αφορά την εξωτερική διάταξη, η οποία χρησιμοποιείται από άποψη σχεδιασμού. | Αφορά την εσωτερική διάταξη, η οποία χρησιμοποιείται από άποψη υλοποίησης. |
Για παράδειγμα | Το εξωτερικό βλέμμα ενός κινητού τηλεφώνου, το οποίο διαθέτει οθόνη και πλήκτρα πληκτρολογίου για να καλέσετε έναν αριθμό. | Εσωτερική λεπτομέρεια εφαρμογής ενός κινητού τηλεφώνου, πώς το κουμπί πληκτρολογίου και η οθόνη οθόνης συνδέονται μεταξύ τους χρησιμοποιώντας κυκλώματα. |