Zapečaćena klasa

Autor: Lewis Jackson
Datum Stvaranja: 8 Svibanj 2021
Datum Ažuriranja: 25 Lipanj 2024
Anonim
I work at the Private Museum for the Rich and Famous. Horror stories. Horror.
Video: I work at the Private Museum for the Rich and Famous. Horror stories. Horror.

Sadržaj

Definicija - Što znači klasa Sealed?

Zapečaćena klasa u C # je klasa koju nijedna klasa ne može naslijediti, ali se može instancirati.


Namjena dizajna zapečaćene klase je naznačiti da je klasa specijalizirana i da je nema potrebe proširiti na pružanje bilo kakve dodatne funkcionalnosti nasljeđivanjem da bi se nadvladalo njezino ponašanje. Zapečaćena klasa se često koristi za enkapsuliranje logike koju treba koristiti u programu, ali bez ikakvih preinaka.

Zapečaćena klasa se uglavnom koristi iz sigurnosnih razloga sprečavanjem nenamjerne derivacije kojom izvedena klasa može oštetiti implementaciju u zapečaćenoj klasi. Kako zapečaćena klasa ne može tvoriti osnovnu klasu, pozivi u zapečaćene klase su nešto brži jer omogućuju određene optimizacije izvršenja, poput prikazivanja funkcija virtualnih članova na instanci zapečaćene klase u ne-virtualne pozive. Zapečaćena klasa pomaže u inačici ne narušavajući kompatibilnost uz promjenu klase iz zatvorenog tipa u nepropusno.

Neke su ključne klase u .NET Framework knjižnici dizajnirane kao zapečaćene klase, uglavnom radi ograničavanja proširivosti tih klasa.


Uvod u Microsoft Azure i Microsoft Cloud | Kroz ovaj vodič naučit ćete o čemu se radi računalstvo u oblaku i kako vam Microsoft Azure može pomoći da preselite i pokrenete svoje poslovanje iz oblaka.

Tehopedija objašnjava zapečaćenu klasu

Za razliku od strukture koja je implicitno zapečaćena, zapečaćena klasa je deklarirana s ključnom riječi, "zapečaćena" kako bi se spriječilo slučajno nasljeđivanje klase. Zapečaćena klasa može biti korisna samo ako ima metode s javnošću dostupne. Zapečaćena klasa ne može biti apstraktna klasa jer bi trebala biti izvedena druga klasa koja pruža primjenu za apstraktne metode i svojstva.

Na primjer, zapečaćena klasa DatabaseHelper može se dizajnirati sa svojstvima i metodama koje mogu služiti funkcionalnostima radnji povezanih s bazom podataka, uključujući vezu s otvorenom i zatvorenom bazom podataka, dohvaćanje i ažuriranje podataka itd. Budući da obavlja ključne funkcije koje bi trebale ako se ne promijeni nadjačavanjem izvedenih klasa, može se oblikovati kao zapečaćena klasa.


Brtvljenje ograničava korist proširivosti i sprječava prilagođavanje tipova knjižnica. Stoga klasa mora biti zapečaćena nakon pažljivog odmjeravanja utjecaja brtvljenja. Popis kriterija koje treba uzeti u obzir za brtvljenje klase uključuje:
  • Klasa je statična
  • Klasa sadrži naslijeđene članove koji predstavljaju osjetljive podatke
  • Klasa je upitana za dobivanje svojih atributa metodom refleksije
  • Klasa nasljeđuje mnoge virtualne članove koje je potrebno zapečatiti
Ova je definicija napisana u C #