Considérations sur le design de hiérarchies de classes pour l'extensibilité
Mise à jour : novembre 2007
Même les hiérarchies de classe bien conçues doivent évoluer au fil du temps. Les choix que vous effectuez lors de la conception d'une hiérarchie de classe peuvent simplifier votre travail ultérieurement.
Extension de hiérarchies de classe
La liste suivante contient quelques suggestions pour permettre d'étendre plus facilement vos hiérarchies de classe :
Les hiérarchies de classe sont définies en partant des classes générales jusqu'aux classes spécifiques. Définissez des classes aussi générales que possible à chaque niveau d'une hiérarchie d'héritage. Les classes dérivées peuvent hériter, réutiliser et étendre des méthodes des classes de base.
Supposons par exemple que vous conceviez une hiérarchie de classe qui décrit le matériel informatique. Lorsque vous commencez à décrire les périphériques de sortie, vous pouvez définir des classes appelées Display, Printer et File. Vous pouvez ensuite définir les classes qui implémentent les méthodes définies dans les classes de base. Par exemple, la classe LCDDisplay pourrait être dérivée de Display et implémenter une méthode nommée EnterPowerSaveMode.
Définissez de grands types de données et de stockage pour éviter de devoir les modifier par la suite. Vous pouvez par exemple utiliser une variable de type Long même si vos données actuelles ne nécessitent qu'une variable standard de type Integer.
Vous devez exposer uniquement les éléments qui sont nécessaires aux classes dérivées. Les champs et méthodes Private réduisent les conflits d'affectation de noms et empêchent les autres utilisateurs d'utiliser des éléments que vous devrez peut-être modifier ultérieurement.
Les membres qui sont uniquement nécessaires aux classes dérivées devraient être marqués en tant que Protected. Cela garantit que seules les classes dérivées dépendent de ces membres et facilite la mise à jour de ces membres durant le développement.
Assurez-vous que les méthodes de classe de base ne dépendent pas de membres Overridable, dont la fonctionnalité peut être modifiée par des classes qui héritent.
Voir aussi
Concepts
Considérations sur la sélection de niveaux d'accès pour les méthodes
Modifications du design de la classe de base après le déploiement