Clase sellada

Definición: ¿Qué significa Clase sellada?

Una clase sellada, en C #, es una clase que no puede ser heredada por ninguna clase, pero puede instanciarse.

La intención del diseño de una clase sellada es indicar que la clase es especializada y no es necesario extenderla para proporcionar ninguna funcionalidad adicional a través de la herencia para anular su comportamiento. Una clase sellada se usa a menudo para encapsular una lógica que debe usarse en todo el programa pero sin ninguna alteración.

Una clase sellada se usa principalmente por razones de seguridad al evitar una derivación no intencional por la cual la clase derivada puede corromper la implementación proporcionada en la clase sellada. Como la clase sellada no puede formar una clase base, las llamadas a clases selladas son un poco más rápidas porque permiten ciertas optimizaciones de tiempo de ejecución, como la invocación de funciones de miembro virtual en instancias de clase sellada en invocaciones no virtuales. La clase sellada ayuda en la creación de versiones al no romper la compatibilidad al cambiar una clase de tipo sellado a no sellado.

Algunas de las clases clave de la biblioteca de .NET Framework están diseñadas como clases selladas, principalmente para limitar la extensibilidad de estas clases.

Techinfo explica la clase sellada

A diferencia de una estructura, que está implícitamente sellada, una clase sellada se declara con la palabra clave "sellada" para evitar la herencia accidental de la clase. Una clase sellada puede ser útil solo si tiene métodos con accesibilidad de nivel público. Una clase sellada no puede ser una clase abstracta ya que la clase abstracta está destinada a ser derivada por otra clase que proporcione implementación para los métodos y propiedades abstractos.

Por ejemplo, una clase sellada, DatabaseHelper, puede diseñarse con propiedades y métodos que pueden dar servicio a las funcionalidades de acciones relacionadas con la base de datos, incluida la conexión de base de datos abierta y cerrada, recuperar y actualizar datos, etc. Porque realiza funciones cruciales que deberían no se puede alterar anulando en sus clases derivadas, se puede diseñar como clase sellada.

El sellado restringe el beneficio de la extensibilidad y evita la personalización de los tipos de biblioteca. Por lo tanto, una clase debe sellarse después de sopesar cuidadosamente el impacto de sellarla. La lista de criterios a considerar para sellar una clase incluye:

  • La clase es estática
  • La clase contiene miembros heredados que representan información confidencial.
  • Se consulta a la clase para recuperar sus atributos a través del método de reflexión.
  • La clase hereda muchos miembros virtuales que deben sellarse

Esta definición se escribió en el contexto de C #