Dom Razvoj Što je klasa zatvorena? - definicija iz tehopedije

Što je klasa zatvorena? - definicija iz tehopedije

Sadržaj:

Anonim

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
Ova je definicija napisana u kontekstu C #
Što je klasa zatvorena? - definicija iz tehopedije