Classe scellée

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 qui 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 via l'héritage pour remplacer son comportement. Une classe scellée est souvent utilisée pour encapsuler une logique qui doit être utilisée dans tout le programme mais sans aucune altération.

Une classe scellée est principalement utilisée pour des raisons de sécurité en empêchant la 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 dans des appels non virtuels. La classe scellée aide à la gestion des versions en ne rompant pas la compatibilité lors du changement d'une classe de type scellé à non scellé.

Certaines des classes clés de la bibliothèque .NET Framework sont conçues comme des classes scellées, principalement pour limiter l'extensibilité de ces classes.

Definir Tech 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 avec une accessibilité de 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 une implémentation pour les 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 desservir les fonctionnalités des actions liées à la base de données, y compris la connexion à une base de données ouverte et fermée, l'extraction et la mise à jour des données, etc. ne pas être altéré en remplaçant ses classes dérivées, il peut être conçu comme une classe scellée.

L'étanchéité limite les avantages de l'extensibilité et empêche la personnalisation des types de bibliothèques. 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

Cette définition a été écrite dans le contexte de C #