Inhaltsverzeichnis:
Definition - Was bedeutet Siegelklasse?
Eine versiegelte Klasse in C # ist eine Klasse, die von keiner Klasse geerbt, sondern instanziiert werden kann.
Mit der Entwurfsabsicht einer versiegelten Klasse soll angegeben werden, dass die Klasse spezialisiert ist, und es ist nicht erforderlich, sie zu erweitern, um zusätzliche Funktionen durch Vererbung bereitzustellen, um ihr Verhalten zu überschreiben. Eine versiegelte Klasse wird häufig verwendet, um eine Logik zu kapseln, die im gesamten Programm verwendet werden muss, ohne dass Änderungen daran vorgenommen werden.
Eine versiegelte Klasse wird hauptsächlich aus Sicherheitsgründen verwendet, um eine unbeabsichtigte Ableitung zu verhindern, durch die die abgeleitete Klasse die in der versiegelten Klasse bereitgestellte Implementierung beschädigen kann. Da die versiegelte Klasse keine Basisklasse bilden kann, sind Aufrufe an versiegelte Klassen etwas schneller, da sie bestimmte Laufzeitoptimierungen ermöglichen, z. B. das Aufrufen von Funktionen virtueller Member in Instanzen versiegelter Klassen in nicht-virtuellen Aufrufen. Sealed Class hilft bei der Versionierung, indem die Kompatibilität nicht unterbrochen wird, während eine Klasse von Sealed Type zu UnSealed geändert wird.
Einige der Schlüsselklassen in der .NET Framework-Bibliothek sind als versiegelte Klassen konzipiert, hauptsächlich um die Erweiterbarkeit dieser Klassen zu begrenzen.
Techopedia erklärt Sealed Class
Im Gegensatz zu einer implizit versiegelten Struktur wird eine versiegelte Klasse mit dem Schlüsselwort "seal" deklariert, um eine versehentliche Vererbung der Klasse zu verhindern. Eine versiegelte Klasse kann nur dann nützlich sein, wenn sie über Methoden verfügt, die auf öffentlicher Ebene zugänglich sind. Eine versiegelte Klasse kann keine abstrakte Klasse sein, da die abstrakte Klasse von einer anderen Klasse abgeleitet werden soll, die die Implementierung der abstrakten Methoden und Eigenschaften bereitstellt.
Beispielsweise kann eine versiegelte Klasse, DatabaseHelper, mit Eigenschaften und Methoden entworfen werden, mit denen die Funktionen datenbankbezogener Aktionen, einschließlich offener und geschlossener Datenbankverbindungen, Abrufen und Aktualisieren von Daten usw., ausgeführt werden können Sie darf nicht durch Überschreiben der abgeleiteten Klassen manipuliert werden. Sie kann als versiegelte Klasse konzipiert werden.
Das Versiegeln schränkt den Vorteil der Erweiterbarkeit ein und verhindert das Anpassen von Bibliothekstypen. Daher muss eine Klasse versiegelt werden, nachdem die Auswirkungen der Versiegelung sorgfältig abgewogen wurden. Die Liste der Kriterien, die für das Versiegeln einer Klasse zu berücksichtigen sind, umfasst:- Die Klasse ist statisch
- Die Klasse enthält geerbte Mitglieder, die vertrauliche Informationen darstellen
- Die Klasse wird abgefragt, um ihre Attribute über die Reflektionsmethode abzurufen
- Die Klasse erbt viele virtuelle Mitglieder, die versiegelt werden müssen