Klasa zapieczętowana

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 25 Czerwiec 2024
Anonim
C# - Sealed Class
Wideo: C# - Sealed Class

Zawartość

Definicja - Co oznacza Sealed Class?

Klasa zapieczętowana, w języku C #, jest klasą, której nie może odziedziczyć żadna klasa, ale można ją utworzyć.


Celem projektu zapieczętowanej klasy jest wskazanie, że klasa jest wyspecjalizowana i nie ma potrzeby jej rozszerzania w celu zapewnienia dodatkowej funkcjonalności poprzez dziedziczenie w celu zastąpienia jej zachowania. Klasa zapieczętowana jest często używana do enkapsulacji logiki, która musi być używana w całym programie, ale bez żadnych zmian.

Klasa zapieczętowana jest używana głównie ze względów bezpieczeństwa, zapobiegając niezamierzonemu wyprowadzeniu, przez które klasa pochodna może uszkodzić implementację zapewnioną w klasie zapieczętowanej. Ponieważ klasa zapieczętowana nie może utworzyć klasy bazowej, wywołania klas zapieczętowanych są nieco szybsze, ponieważ umożliwiają pewne optymalizacje środowiska wykonawczego, takie jak wywoływanie wirtualnych funkcji składowych w instancjach zapieczętowanej klasy w wywołaniach innych niż wirtualne. Klasa zapieczętowana pomaga w wersjonowaniu, nie naruszając kompatybilności przy zmianie klasy z typu zapieczętowanego na niezapieczętowany.


Niektóre kluczowe klasy w bibliotece .NET Framework są zaprojektowane jako klasy zamknięte, głównie w celu ograniczenia rozszerzalności tych klas.

Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia Sealed Class

W przeciwieństwie do struktury, która jest domyślnie zapieczętowana, zapieczętowaną klasę deklaruje się za pomocą słowa kluczowego „zapieczętowane”, aby zapobiec przypadkowemu dziedziczeniu klasy. Klasa zapieczętowana może być użyteczna tylko wtedy, gdy ma metody z dostępnością na poziomie publicznym. Klasa zapieczętowana nie może być klasą abstrakcyjną, ponieważ klasa abstrakcyjna ma być wyprowadzona przez inną klasę, która zapewnia implementację metod i właściwości abstrakcyjnych.

Na przykład klasę zamkniętą, DatabaseHelper, można zaprojektować za pomocą właściwości i metod, które mogą obsługiwać funkcje działań związanych z bazą danych, w tym połączenie z otwartą i zamkniętą bazą danych, pobieranie i aktualizowanie danych itp. Ponieważ wykonuje kluczowe funkcje, które powinny nie można go manipulować poprzez nadpisywanie w jego klasach pochodnych, można go zaprojektować jako klasę zamkniętą.


Uszczelnianie ogranicza korzyści związane z rozszerzalnością i zapobiega dostosowywaniu typów bibliotek. Dlatego klasa musi zostać zapieczętowana po dokładnym zważeniu wpływu uszczelnienia. Lista kryteriów, które należy wziąć pod uwagę przy zamykaniu klasy, obejmuje:
  • Klasa jest statyczna
  • Klasa zawiera odziedziczone elementy, które reprezentują poufne informacje
  • Klasa jest odpytywana o odzyskanie swoich atrybutów za pomocą metody odbicia
  • Klasa dziedziczy wielu wirtualnych członków, którzy muszą zostać zapieczętowani
Ta definicja została napisana w con C #