Compartilhar via


Limitar extensibilidade por lacrar classes

Você pode usar o fechamento para limitar as maneiras em que os desenvolvedores podem estender sua estrutura. Quando você lacrar uma classe, outras classes não podem herdar dele. Quando você lacrar um membro, as classes derivadas não podem substituir a implementação do membro. Você não deve lacrar tipos e membros por padrão. O lacre impedirá a personalização da biblioteca de tipos e membros e afeta a percepção de usabilidade para alguns desenvolvedores. Além disso, a extensibilidade é um dos benefícios fundamentais do uso de uma estrutura orientada a objeto. Você deve avaliar cuidadosamente as decisões restringem esse benefício.

Não lacrar classes sem ter um mercadoria motivo para isso.

Não assuma que porque você não vir um cenário em que estender uma classe seria desejável, que é apropriado para lacrar a classe. Você deve lacrar classes que atendem a certas condições:

  • A classe é estática.

  • A classe contém membros protegidos herdados com informações confidenciais.

  • A classe herda muitos membros virtual e o desenvolvimento e testes os custos de fechamento de cada membro são significativamente mais caros que lacrar toda a turma.

  • A classe é um atributo que requer a pesquisa rápida usando a reflexão. Lacrar um atributo melhora o desempenho da reflexão ao recuperar atributos.

Não declarará membros protegidos ou virtual tipos lacrados.

Se um tipo selado, ele não pode ter classes derivadas. Membros protegidos podem ser acessados somente de uma classe derivada e membros virtual podem ser substituídos somente em uma classe derivada.

Considere lacrar membros que você substituir.

Você pode usar essa abordagem para garantir que as classes derivadas não modifique nem ignorar comportamento necessário à classe corrente e as classes derivadas de todos os.

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Classes sem lacre

Outros recursos

Diretrizes de Design para desenvolvimento bibliotecas de classe

Criação de extensibilidade