Obsah:
Definícia - Čo znamená trieda Sealed?
Zapečatená trieda v C # je trieda, ktorú nemôže zdediť žiadna trieda, ale je možné ju vytvoriť.
Zámerom dizajnu zapečatenej triedy je naznačiť, že trieda je špecializovaná a netreba ju rozširovať, aby zabezpečovala akúkoľvek ďalšiu funkčnosť prostredníctvom dedičstva na potlačenie jej správania. Zapečatená trieda sa často používa na zapuzdrenie logiky, ktorá musí byť použitá v celom programe, ale bez akejkoľvek zmeny v nej.
Zapečatená trieda sa väčšinou používa z bezpečnostných dôvodov tým, že bráni neúmyselnému odvodeniu, ktorým môže odvodená trieda poškodiť implementáciu poskytnutú v zapečatenej triede. Pretože zapečatená trieda nemôže tvoriť základnú triedu, volania na zapečatené triedy sú o niečo rýchlejší, pretože umožňujú určité runtime optimalizácie, ako je vyvolanie virtuálnych členských funkcií v prípadoch zapečatenej triedy, na nev virtuálne vyvolania. Uzatvorená trieda pomáha pri vytváraní verzií tým, že nenaruší kompatibilitu pri zmene triedy z zapečateného typu na neuzatvorený.
Niektoré z kľúčových tried v rámcovej knižnici .NET sú navrhnuté ako zapečatené triedy, hlavne na obmedzenie rozšíriteľnosti týchto tried.
Techopedia vysvetľuje Sealed Class
Na rozdiel od štruktúry, ktorá je implicitne zapečatená, je zapečatená trieda deklarovaná pomocou kľúčového slova „zapečatené“, aby sa predišlo náhodnému dedičstvu triedy. Zapečatená trieda môže byť užitočná, iba ak má metódy s prístupnosťou na verejnej úrovni. Zapečatená trieda nemôže byť abstraktnou triedou, pretože abstraktná trieda má byť odvodená inou triedou, ktorá poskytuje implementáciu abstraktných metód a vlastností.
Napríklad zapečatenú triedu DatabaseHelper možno navrhnúť s vlastnosťami a metódami, ktoré môžu obsluhovať funkčnosť akcií súvisiacich s databázou vrátane pripojenia otvorenej a uzavretej databázy, načítania a aktualizácie údajov atď. Pretože vykonáva kľúčové funkcie, ktoré by mali nemalo by sa s ním manipulovať prepísaním v jeho odvodených triedach, môže sa navrhnúť ako zapečatená trieda.
Uzatváranie obmedzuje výhody rozšíriteľnosti a zabraňuje prispôsobovaniu typov knižníc. Preto musí byť trieda zapečatená po starostlivom zvážení dopadu jej utesnenia. Zoznam kritérií, ktoré je potrebné zohľadniť pri zapečatení triedy, zahŕňa:- Trieda je statická
- Trieda obsahuje zdedené členy, ktoré predstavujú citlivé informácie
- Trieda sa spýta, aby načítala svoje atribúty pomocou metódy odrazu
- Trieda zdedí mnoho virtuálnych členov, ktorí musia byť zapečatení
