Das Markieren einer Klasse als Sealed
verhindert das Manipulieren wichtiger Klassen, die die Sicherheit gefährden oder die Leistung beeinträchtigen können.
Oft ist das Versiegeln einer Klasse auch dann sinnvoll, wenn eine Utility-Klasse mit festem Verhalten entworfen wird, das wir nicht ändern möchten.
Zum Beispiel bietet der System
Namespace in C#
viele Klassen, die versiegelt sind, wie z String
. Wenn es nicht versiegelt ist, könnte es seine Funktionalität erweitern, was unerwünscht sein könnte, da es sich um einen grundlegenden Typ mit gegebener Funktionalität handelt.
Ebenso sind structures
in C#
immer implizit versiegelt. Daher kann man eine Struktur / Klasse nicht von einer anderen Struktur ableiten. Der Grund dafür ist, dass structures
nur eigenständige, atomare, benutzerdefinierte Datentypen modelliert werden, die wir nicht ändern möchten.
Wenn Sie Klassenhierarchien erstellen, möchten Sie manchmal einen bestimmten Zweig in der Vererbungskette basierend auf Ihrem Domänenmodell oder Ihren Geschäftsregeln abschließen.
Zum Beispiel sind a Manager
und PartTimeEmployee
beide Employee
s, aber Sie haben nach Teilzeitbeschäftigten in Ihrer Organisation keine Rolle mehr. In diesem Fall möchten Sie möglicherweise versiegeln PartTimeEmployee
, um eine weitere Verzweigung zu verhindern. Wenn Sie jedoch stündliche oder wöchentliche Teilzeitbeschäftigte haben, kann es sinnvoll sein, diese zu erben PartTimeEmployee
.