Diretrizes de design de tipo
Da perspectiva do CLR, há apenas duas categorias de tipos: tipos de referência e tipos de valor. Porém, para fins de uma discussão sobre design de estrutura, dividimos tipos em grupos mais lógicos, cada um com as próprias regras de design específicas.
Classes são o caso geral de tipos de referência. Elas compõem a maior parte dos tipos na maioria das estruturas. As classes devem sua popularidade ao conjunto avançado de recursos orientados a objetos que dão suporte e à sua aplicabilidade geral. Classes base e classes abstratas são grupos lógicos especiais relacionados à extensibilidade.
Interfaces são tipos que podem ser implementados por tipos de referência e tipos de valor. Portanto, elas podem servir como raízes de hierarquias polimórficas de tipos de referência e tipos de valor. Além disso, as interfaces podem ser usadas para simular várias heranças, que não têm suporte nativo no CLR.
Structs são o caso geral de tipos de valor e devem ser reservados para tipos pequenos e simples, semelhantes aos primitivos de linguagem.
Enumerações são um caso especial de tipos de valor usados para definir conjuntos curtos de valores, como dias da semana, cores do console etc.
Classes estáticas são tipos destinados a serem contêineres para membros estáticos. Eles são comumente usados para fornecer atalhos para outras operações.
Delegados, exceções, atributos, matrizes e coleções são todos casos especiais de tipos de referência destinados a usos específicos e diretrizes para seu design e uso são discutidos em outros pontos neste livro.
✔️ VERIFIQUE se cada tipo é um conjunto bem definido de membros relacionados, não apenas uma coleção aleatória de funcionalidades não relacionadas.
Nesta seção
Escolher entre Classe e Struct
Design de classe abstrata
Design de classe estática
Design de interface
Design de Struct
Design de enumeração
Tipos aninhados
Portions © 2005, 2009 Microsoft Corporation. Todos os direitos reservados.
Reimpresso com permissão da Pearson Education, Inc. das Diretrizes de Design do Framework: convenções, linguagens e padrões para bibliotecas do .NET reutilizável, 2ª edição por Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 por Addison-Wesley Professional como parte da série de desenvolvimento do Microsoft Windows.