Compartilhar via


Design de classe abstrata

Como classes abstratas nunca devem ser instanciadas, é importante definir corretamente seus construtores. Também é importante garantir que a funcionalidade da sua classe abstrata está correto e com com facilidade estendidos. sistema autônomo diretrizes a seguir ajudam a garantir que suas classes abstratas são projetados corretamente e funcionam sistema autônomo esperado quando implementada.

Não defina públicos ou protegidos internos (Protected Friend no Visual Basic) construtores tipos abstratos.

Construtores com public ou protected internal visibilidade são para tipos que podem ser instanciados. Tipos abstratos nunca podem ser instanciados.

Definem um protegido ou um construtor interno em classes abstratas.

Se você definir um construtor protegido em uma classe abstrata, a classe base pode executar as tarefas de inicialização quando são criadas instâncias de uma classe derivada. Um construtor interno impede que a classe abstrata seja usado sistema autônomo a classe base dos tipos que não estão no mesmo assembly sistema autônomo a classe abstrata.

Fornecem pelo menos um tipo concreto que herda de cada classe abstrata que você enviar.

Essa prática ajuda os designers da biblioteca localizar problemas ou descuidos no design da classe abstrata. Isso também significa que, para cenários de alto nível onde os desenvolvedores podem não entender classes abstratas e herança, eles podem usar a classe concreta sem a necessidade de aprender esses conceitos. Por exemplo, o .NET estrutura fornece as classes abstratas WebRequest e WebResponse para lidar com solicitações de envio e receber respostas de um Uniform recurso identificador. sistema autônomo uma das várias implementações concretas para estas classes abstratas, o estrutura inclui o HttpWebRequest e HttpWebResponse classes, que são implementações específicas HTTP classes abstratas.

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

Escolhendo entre classes e interfaces

Outros recursos

Diretrizes de design de tipo

Diretrizes de Design para desenvolvimento bibliotecas de classe