Cuprins:
Definiție - Ce înseamnă Clasa sigilată?
O clasă sigilată, în C #, este o clasă care nu poate fi moștenită de nicio clasă, dar care poate fi instantanată.
Intenția de proiectare a unei clase sigilate este de a indica faptul că clasa este specializată și nu este necesară extinderea acesteia pentru a oferi orice funcționalitate suplimentară prin moștenire pentru a trece peste comportamentul acesteia. O clasă sigilată este adesea folosită pentru a încapsula o logică care trebuie utilizată în cadrul programului, dar fără alterarea acestuia.
O clasă sigilată este utilizată în cea mai mare parte din motive de securitate prin prevenirea derivării neintenționate prin care clasa derivată poate corupta implementarea prevăzută în clasa sigilată. Deoarece clasa sigilată nu poate forma o clasă de bază, apelurile către clase sigilate sunt puțin mai rapide, deoarece permit anumite optimizări de rulare, cum ar fi invocarea funcțiilor de membru virtual în cazuri de clasă sigilată în invocări non-virtuale. Clasa sigilată ajută la versiunea de rupere a compatibilității în timp ce schimbă o clasă de la un tip sigilat la unsealed.
Unele dintre clasele cheie din biblioteca cadru .NET sunt concepute ca clase sigilate, în principal pentru a limita extensibilitatea acestor clase.
Techopedia explică Sealed Class
Spre deosebire de o struct, care este implicit sigilată, o clasă sigilată este declarată cu cuvântul cheie, „sigilat” pentru a preveni moștenirea accidentală a clasei. O clasă sigilată poate fi utilă numai dacă are metode cu accesibilitate la nivel public. O clasă sigilată nu poate fi o clasă abstractă, deoarece clasa abstractă este destinată să fie derivată de o altă clasă care asigură implementarea metodelor și proprietăților abstracte.
De exemplu, o clasă sigilată, DatabaseHelper, poate fi proiectată cu proprietăți și metode care pot servi funcționalitățile acțiunilor legate de baza de date, inclusiv conexiunea cu baze de date deschise și închise, preluarea și actualizarea datelor etc. Pentru că îndeplinește funcții cruciale care ar trebui nu poate fi modificat prin suprapunerea în clasele derivate, acesta poate fi proiectat ca o clasă sigilată.
Sigilarea restricționează avantajul extensibilității și împiedică personalizarea tipurilor de bibliotecă. Prin urmare, o clasă trebuie să fie sigilată după cântărirea cu atenție a impactului sigilării acesteia. Lista de criterii care trebuie luate în considerare pentru sigilarea unei clase include:- Clasa este statică
- Clasa conține membri moșteniți care reprezintă informații sensibile
- Clasa este solicitată pentru a-și prelua atributele prin metoda de reflecție
- Clasa mosteneste multi membri virtuali care trebuie sigilati
