Διαφορά μεταξύ ενθυλάκωσης και αφαίρεσης

Anonim

Encapsulation vs. Abstraction

Η ενθυλάκωση και η αφαίρεση είναι δύο διαφορετικές αλλά σχετικές έννοιες που υπάρχουν στις γλώσσες OOP (Oriented Programming). Η ενθυλάκωση είναι η έννοια του συνδυασμού δεδομένων και συμπεριφοράς μαζί ως ενιαίας οντότητας. Από την άλλη πλευρά, η Αφαίρεση είναι η διαδικασία παρουσίασης του τρόπου συμπεριφοράς μιας οντότητας σε σχέση με τον τρόπο εφαρμογής της.

Τι είναι το Encapsulation;

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

Τι είναι η αφαίρεση;

Η αφαίρεση είναι η διαδικασία διαχωρισμού των λεπτομερειών παρουσίασης από τις λεπτομέρειες υλοποίησης. Αυτό γίνεται έτσι ώστε ο κύριος του έργου να απαλλαγεί από τις πιο περίπλοκες λεπτομέρειες εφαρμογής. Αντ 'αυτού, ο προγραμματιστής μπορεί να επικεντρωθεί στην παρουσίαση ή στις λεπτομέρειες συμπεριφοράς της οντότητας. Με απλά λόγια, η αφαίρεση επικεντρώνεται στο πώς μπορεί να χρησιμοποιηθεί μια συγκεκριμένη οντότητα παρά στον τρόπο με τον οποίο υλοποιείται. Η αφαίρεση ουσιαστικά αποκρύπτει τις λεπτομέρειες εφαρμογής, έτσι ώστε ακόμα και αν η μεθοδολογία εφαρμογής μεταβληθεί με την πάροδο του χρόνου, ο προγραμματιστής δεν θα πρέπει να ανησυχεί πώς θα επηρεάσει το πρόγραμμά του. Ένα σύστημα μπορεί να αφαιρεθεί σε πολλά επίπεδα ή επίπεδα. Για παράδειγμα, τα στρώματα αφαίρεσης χαμηλού επιπέδου θα αποκαλύψουν λεπτομέρειες υλικού, ενώ η αφαίρεση υψηλού επιπέδου θα αποκαλύψει μόνο την επιχειρησιακή λογική της οντότητας. Ο όρος αφαίρεση μπορεί να χρησιμοποιηθεί για να αναφέρεται τόσο σε μια οντότητα όσο και σε μια διαδικασία και αυτό οδηγεί σε κάποια σύγχυση. Ως διαδικασία, η αφαίρεση σημαίνει την εξαγωγή ουσιωδών στοιχείων, ενώ αγνοείται η ουσιώδης λεπτομέρεια ενός στοιχείου ή μιας ομάδας αντικειμένων, ενώ ως οντότητα, η αφαίρεση σημαίνει ένα μοντέλο ή μια άποψη μιας οντότητας με μόνο τις βασικές λεπτομέρειες.Στην Java, ο προγραμματιστής μπορεί να χρησιμοποιήσει την αφηρημένη λέξη-κλειδί για να δηλώσει μια τάξη ως μια αφηρημένη οντότητα, η οποία αντιπροσωπεύει τους βασικούς καθοριστικούς χαρακτηρισμούς μιας οντότητας πραγματικού κόσμου.

Ποια είναι η διαφορά μεταξύ της ενθυλάκωσης και της αφαίρεσης;

Παρόλο που οι Encapsulation and Abstraction είναι έντονα συναφείς έννοιες που βρίσκονται σε γλώσσες προγραμματισμού αντικειμενοστραφής, έχουν βασικές διαφορές. Η αφαίρεση είναι μια τεχνική που μας βοηθά να εντοπίσουμε τι πρέπει να είναι ορατό και τι πρέπει να κρυφτεί. Η ενθυλάκωση είναι οι τεχνικές για τη συσκευασία των πληροφοριών έτσι ώστε να καθιστά ορατό τι πρέπει να είναι ορατό και κρύβει τι πρέπει να κρυφτεί. Με άλλα λόγια, η ενθυλάκωση μπορεί να αναγνωριστεί ως ένα βήμα πέρα ​​από την αφαίρεση. Ενώ η αφαίρεση μειώνει ένα πραγματικό αντικείμενο στον κόσμο στα βασικά καθοριστικά χαρακτηριστικά του, η ενθυλάκωση επεκτείνει αυτή την ιδέα με μοντελοποίηση και σύνδεση αυτής της λειτουργικότητας αυτής της οντότητας.