Design de classe abstrato
Nota
Este conteúdo é reimpresso com permissão da Pearson Education, Inc., a partir de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Essa edição foi publicada em 2008 e, desde então, o livro foi totalmente revisto 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 que herda de cada classe abstrata que você envia.
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 com permissão da Pearson Education, Inc., de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition por Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 por Addison-Wesley Professional como parte da Microsoft Windows Development Series.