Classe selada

Definição - O que significa Classe Selada?

Uma classe lacrada, em C #, é uma classe que não pode ser herdada por nenhuma classe, mas pode ser instanciada.

A intenção do projeto de uma classe lacrada é indicar que a classe é especializada e não há necessidade de estendê-la para fornecer qualquer funcionalidade adicional por meio de herança para substituir seu comportamento. Uma classe lacrada é freqüentemente usada para encapsular uma lógica que precisa ser usada em todo o programa, mas sem nenhuma alteração nela.

Uma classe lacrada é usada principalmente por razões de segurança, evitando derivação não intencional pela qual a classe derivada pode corromper a implementação fornecida na classe lacrada. Como a classe lacrada não pode formar uma classe base, as chamadas para as classes lacradas são um pouco mais rápidas porque permitem certas otimizações de tempo de execução, como a chamada de funções de membro virtual em instâncias de classe lacrada em invocações não virtuais. A classe selada ajuda no controle de versão, não quebrando a compatibilidade ao alterar uma classe de tipo selado para não lacrado.

Algumas das classes principais na biblioteca do .NET framework são projetadas como classes lacradas, principalmente para limitar a extensibilidade dessas classes.

Definirtec explica classe selada

Ao contrário de uma estrutura, que é selada implicitamente, uma classe selada é declarada com a palavra-chave "selada" para evitar a herança acidental da classe. Uma classe lacrada pode ser útil apenas se tiver métodos com acessibilidade de nível público. Uma classe lacrada não pode ser uma classe abstrata, pois a classe abstrata deve ser derivada por outra classe que fornece implementação para os métodos e propriedades abstratos.

Por exemplo, uma classe lacrada, DatabaseHelper, pode ser projetada com propriedades e métodos que podem servir as funcionalidades de ações relacionadas ao banco de dados, incluindo conexão de banco de dados aberto e fechado, busca e atualização de dados, etc. Porque executa funções cruciais que devem não pode ser adulterado substituindo em suas classes derivadas, ele pode ser projetado como uma classe selada.

A vedação restringe o benefício da extensibilidade e evita a personalização dos tipos de biblioteca. Portanto, uma classe deve ser selada após pesar cuidadosamente o impacto de sua selagem. A lista de critérios a serem considerados para selar uma classe inclui:

  • A classe é estática
  • A classe contém membros herdados que representam informações confidenciais
  • A classe é consultada para recuperar seus atributos por meio do método de reflexão
  • A classe herda muitos membros virtuais que precisam ser selados

Esta definição foi escrita no contexto de C #