Compartilhar via


Design de classe abstrata

Observação

Esse conteúdo é reimpresso por permissão da Pearson Education, Inc. das Diretrizes de Design da Estrutura: Convenções, Idiomas e Padrões para Bibliotecas .NET Reutilizáveis, 2ª Edição. Essa edição foi publicada em 2008, e desde então o livro foi totalmente revisado na terceira edição. Algumas das informações nesta página podem estar desatualizadas.

❌ NÃO defina construtores internos públicos ou protegidos em tipos abstratos.

Os construtores devem ser públicos somente se os usuários precisarem criar instâncias do tipo. Como você não pode criar instâncias de um tipo abstrato, um tipo abstrato com um construtor público é projetado incorretamente e enganoso para os usuários.

✔️ DO define um construtor protegido ou interno em classes abstratas.

Um construtor protegido é mais comum e simplesmente permite que a classe base faça sua própria inicialização quando os subtipos são criados.

Um construtor interno pode ser usado para limitar implementações concretas da classe abstrata ao assembly que define a classe.

✔️ Forneça pelo menos um tipo concreto herdado de cada classe abstrata enviada.

Fazer isso ajuda a validar o design da classe abstrata. Por exemplo, System.IO.FileStream é uma implementação da System.IO.Stream classe abstrata.

Partes © 2005, 2009 Microsoft Corporation. Todos os direitos reservados.

Reimpresso por permissão da Pearson Education, Inc. de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition de Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 pela Addison-Wesley Professional como parte da série Microsoft Windows Development Series.

Consulte também