Design de classe abstrata

Como classes abstratas nunca devem ser instanciadas, é importante definir corretamente a seus construtores. Também é importante garantir que a funcionalidade da classe abstrata está correto e facilmente estendidos. As diretrizes a seguir ajudam a garantir que suas classes abstratas são criadas corretamente e que funcionam como esperado quando implementada.

Não defina construtores públicos ou privados de internos (Protected Friend em Visual Basic) em tipos abstratos.

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

Defina um construtor interno ou uma planilha protegida em classes abstratas.

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

Fornece pelo menos um tipo concreto que herda a partir de cada classe abstrata que você enviar.

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

Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.

Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Escolhendo entre Classes e Interfaces

Outros recursos

Diretrizes de Design do tipo

Diretrizes de Design para desenvolvimento bibliotecas de classe