Table des matières:
Définition - Que signifie la classe scellée?
Une classe scellée, en C #, est une classe qui ne peut être héritée par aucune classe mais peut être instanciée.
L'intention de conception d'une classe scellée est d'indiquer que la classe est spécialisée et qu'il n'est pas nécessaire de l'étendre pour fournir des fonctionnalités supplémentaires par héritage afin de remplacer son comportement. Une classe scellée est souvent utilisée pour encapsuler une logique qui doit être utilisée à travers le programme mais sans aucune modification.
Une classe scellée est principalement utilisée pour des raisons de sécurité en empêchant une dérivation involontaire par laquelle la classe dérivée peut corrompre l'implémentation fournie dans la classe scellée. Comme la classe scellée ne peut pas former une classe de base, les appels aux classes scellées sont légèrement plus rapides car ils permettent certaines optimisations d'exécution telles que l'invocation de fonctions membres virtuelles sur des instances de classe scellée en invocations non virtuelles. La classe scellée aide au versioning en ne cassant pas la compatibilité lors du changement d'une classe du type scellé en non scellé.
Certaines des classes clés de la bibliothèque du framework .NET sont conçues comme des classes scellées, principalement pour limiter l'extensibilité de ces classes.
Techopedia explique la classe scellée
Contrairement à une structure, qui est implicitement scellée, une classe scellée est déclarée avec le mot-clé "scellé" pour empêcher l'héritage accidentel de la classe. Une classe scellée ne peut être utile que si elle possède des méthodes accessibles au niveau public. Une classe scellée ne peut pas être une classe abstraite car la classe abstraite est destinée à être dérivée par une autre classe qui fournit l'implémentation des méthodes et propriétés abstraites.
Par exemple, une classe scellée, DatabaseHelper, peut être conçue avec des propriétés et des méthodes qui peuvent servir les fonctionnalités des actions liées à la base de données, y compris la connexion à la base de données ouverte et fermée, extraire et mettre à jour les données, etc. Parce qu'elle exécute des fonctions cruciales qui devraient ne peut pas être altéré en remplaçant ses classes dérivées, il peut être conçu comme classe scellée.
L'étanchéité limite les avantages de l'extensibilité et empêche la personnalisation des types de bibliothèque. Par conséquent, une classe doit être scellée après avoir soigneusement pesé l'impact de son scellement. La liste des critères à considérer pour sceller une classe comprend:- La classe est statique
- La classe contient des membres hérités qui représentent des informations sensibles
- La classe est interrogée pour récupérer ses attributs via la méthode de réflexion
- La classe hérite de nombreux membres virtuels qui doivent être scellés
