Exercice UML modélisation  des classes: Patron « Adapteur »

1. Chaque animal est modélisé par une classe : ChatVache, etc. Ces classes possèdent au moins les comportements suivants : crier() et forme(). Les méthodes implémentées dans les différentes classes d’animaux ont toutes les mêmes opérations (mêmes signatures de méthodes).  Cela signifie que le client qui utilise un animal n’a pas besoin de savoir a priori de quel animal il s’agit exactement ; il doit pouvoir accéder à un ensemble d’opérations. En ce sens, il suffit de créer une classe générale appelée Animal, qui regroupe les opérations communes. Cela permet de traiter tous les animaux de la même manière, sans se soucier des différences d’implémentation, et d’ajouter ultérieurement de nouveaux animaux sans devoir modifier le client

UML Problèmes et exercices

L’ajout d’une classe d’animaux quelconques doit se faire par dérivation de la classe Animal. Cette nouvelle classe doit absolument  implémenter  les méthodes  abstraites de la classe Animal.

2. Pour pouvoir réutiliser les méthodes déjà développées et garder la propriété du polymorphisme, vous devez trouver un moyen d’adapter les noms des anciennes méthodes aux noms génériques choisis dans la nouvelle version du jeu. Par exemple, pour le cas de la classe Chat, il suffit de trouver un moyen d’appeler les méthodes criChat() et formeChat() de la classe LeChat. La solution simple qui permet de résoudre ce problème  consiste à mettre la classe LeChat dans la classe Chat. La composition permet la délégation d’opérations. Ainsi, la classe Chat se contente tout simplement de déléguer les opérations qu’on lui demande à la classe LeChat et d’utiliser par là même le code déjà développé.

LIRE AUSSI :  Exercice UML corrigé classe active

uml6

Ce processus d’encapsulation des classes de l’ancienne version est décrit à la figure 2.78.

UML Problèmes et exercices

3. Ce mécanisme d’adaptation  par encapsulation  peut être utile dans le contexte d’utilisation du polymorphisme. Il permet aussi de ne plus se poser de questions sur l’intégration de classes existantes lors de la phase de conception : la solution présentée ici ne présente aucune  contrainte  et peut  être utilisée facilement. Il s’agit d’une instance  du  patron « Adaptateur ».

La solution générique du patron « Adaptateur » consiste donc à faire correspondre  à une interface donnée un objet existant contenant des méthodes quelconques. En simplifiant la figure 2.79, vous obtenez la solution générique présentée à la figure 2.80.

Exercice UML modélisation  des classes

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *