Instructions de conception de types

Du point de vue du CLR, il n’existe que deux catégories de types : les types référence et les types valeur, mais dans le cadre d’une discussion sur la conception d’infrastructure, nous divisons les types en groupes plus logiques, chacun avec ses propres règles de conception spécifiques.

Les classes sont le cas général des types référence. Ils constituent la majeure partie des types dans la majorité des infrastructures. Les classes doivent leur popularité au riche ensemble de caractéristiques orientées sur les objets qu’elles prennent en charge et à leur applicabilité générale. Les classes de base et les classes abstraites sont des groupes logiques spéciaux liés à l’extensibilité.

Les interfaces sont des types qui peuvent être implémentés à la fois par les types référence et les types valeur. Ils peuvent ainsi servir de racines de hiérarchies polymorphes de types référence et de types valeur. En outre, les interfaces peuvent être utilisées pour simuler plusieurs héritages, ce qui n’est pas pris en charge en mode natif par le CLR.

Les structs sont le cas général des types valeur et doivent être réservés aux petits types simples, similaires aux primitives de langage.

Les énumérations sont un cas spécial de types valeur utilisés pour définir des ensembles de valeurs courts, tels que les jours de la semaine, les couleurs de la console, etc.

Les classes statiques sont des types destinés à être des conteneurs pour les membres statiques. Ils sont couramment utilisés pour fournir des raccourcis vers d’autres opérations.

Les délégués, exceptions, attributs, tableaux et collections sont tous des cas spéciaux de types de référence destinés à des utilisations spécifiques, et des instructions pour leur conception et leur utilisation sont présentées ailleurs dans ce livre.

✔️ Assurez-vous que chaque type est un ensemble bien défini de membres associés, pas seulement une collection aléatoire de fonctionnalités non liées.

Contenu de cette section

Choix entre classe et structure
Conception de classes abstraites
Conception de classes statiques
Conception d’interfaces
Conception de structures
Conception d’énumérations
Types imbriqués
Portions © 2005, 2009 Microsoft Corporation. Tous droits réservés.

Réimprimé avec l’autorisation de Pearson Education, Inc. et extrait de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition par Krzysztof Cwalina et Brad Abrams, publié le 22 octobre 2008 par Addison-Wesley Professional dans le cadre de la série sur le développement Microsoft Windows.

Voir aussi