Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει κλειστή κατηγορία;
Μια σφραγισμένη κλάση, στο C #, είναι μια κλάση που δεν μπορεί να κληρονομείται από οποιαδήποτε κλάση, αλλά μπορεί να παρουσιαστεί σε παράδοση.
Η πρόθεση σχεδιασμού μιας σφραγισμένης κλάσης είναι να υποδείξει ότι η τάξη είναι εξειδικευμένη και δεν υπάρχει ανάγκη να επεκταθεί για να παρέχει οποιαδήποτε πρόσθετη λειτουργικότητα μέσω της κληρονομίας για να παρακάμψει τη συμπεριφορά της. Μια σφραγισμένη κλάση χρησιμοποιείται συχνά για την ενσωμάτωση μιας λογικής που πρέπει να χρησιμοποιηθεί σε ολόκληρο το πρόγραμμα αλλά χωρίς καμία αλλαγή σε αυτό.
Μια σφραγισμένη κλάση χρησιμοποιείται ως επί το πλείστον για λόγους ασφαλείας, εμποδίζοντας την ακούσια παραγωγή με την οποία η παράγωγη κλάση μπορεί να καταστρέψει την εφαρμογή που παρέχεται στη σφραγισμένη κατηγορία. Καθώς η σφραγισμένη κλάση δεν μπορεί να αποτελέσει μια βασική κλάση, οι κλήσεις σε σφραγισμένες κλάσεις είναι ελαφρώς ταχύτερες, επειδή επιτρέπουν ορισμένες βελτιστοποιήσεις χρόνου εκτέλεσης όπως η επίκληση των εικονικών λειτουργιών μελών σε περιπτώσεις σφραγισμένης κλάσης σε μη εικονικές επικλήσεις. Η σφραγισμένη κλάση βοηθάει στην εκδοχή να μην σπάει τη συμβατότητα αλλάζοντας μια κλάση από σφραγισμένο τύπο σε ασφράγιστο.
Ορισμένες από τις κλάσεις-κλειδιά της βιβλιοθήκης πλαισίων .NET έχουν σχεδιαστεί ως σφραγισμένες κατηγορίες, κυρίως για να περιορίσουν την επεκτασιμότητα αυτών των κλάσεων.
Η Techopedia εξηγεί τη σφραγισμένη κλάση
Σε αντίθεση με ένα struct, το οποίο είναι σφραγισμένο σιωπηρά, μια σφραγισμένη κλάση δηλώνεται με τη λέξη κλειδί, "σφραγισμένη" για να αποφευχθεί η τυχαία κληρονομικότητα της τάξης. Μια σφραγισμένη κλάση μπορεί να είναι χρήσιμη μόνο εάν διαθέτει μεθόδους με προσβασιμότητα σε δημόσιο επίπεδο. Μια σφραγισμένη κλάση δεν μπορεί να είναι μια αφηρημένη κλάση, καθώς η αφηρημένη τάξη προορίζεται να παραχθεί από μια άλλη τάξη που παρέχει την εφαρμογή για τις αφηρημένες μεθόδους και ιδιότητες.
Για παράδειγμα, μια σφραγισμένη κλάση, DatabaseHelper, μπορεί να σχεδιαστεί με ιδιότητες και μεθόδους που μπορούν να εξυπηρετήσουν τις λειτουργίες των σχετικών με τη βάση δεδομένων ενεργειών, συμπεριλαμβανομένης της σύνδεσης ανοιχτής και κλειστής βάσης δεδομένων, της ανάκτησης και της ενημέρωσης δεδομένων κλπ. Επειδή εκτελεί κρίσιμες λειτουργίες δεν μπορεί να παραβιαστεί από την επικράτηση στις κλάσεις που παράγονται, μπορεί να σχεδιαστεί ως σφραγισμένη κατηγορία.
Η σφράγιση περιορίζει το πλεονέκτημα της επεκτασιμότητας και εμποδίζει την προσαρμογή των τύπων βιβλιοθήκης. Ως εκ τούτου, μια τάξη πρέπει να σφραγισθεί αφού προσεκτικά βαρύνει την επίδραση της σφράγισης. Ο κατάλογος των κριτηρίων που πρέπει να ληφθούν υπόψη για τη στεγανοποίηση μιας τάξης περιλαμβάνει:- Η τάξη είναι στατική
- Η κλάση περιέχει κληρονομικά μέλη που αντιπροσωπεύουν ευαίσθητες πληροφορίες
- Η κλάση ερωτάται για την ανάκτηση των χαρακτηριστικών της μέσω της μεθόδου αντανάκλασης
- Η τάξη κληρονομεί πολλά εικονικά μέλη που πρέπει να σφραγιστούν
