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 formirati 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 primjerima 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.
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
