Identifiant :
Mot de passe :

Patrons de conception

Switch caché

Diagramme de classes :

Diagramme de classes

Points forts :

  1. 1. Extensibilité
    1. KO 1.1 Factorisation de protocole pour tous les états
    2. KO 1.2 L'ajout ou la suppression d'un état n'implique pas de modification de code
  2. 2. Gestion simplifiée
    1. OK 2.1 Changement d'état possible à l'exécution sans destruction
    2. KO 2.2 Découplage du comportement de chaque état

Contextualisations du patron abîmé sur différents problèmes

Problème 1 :

Enoncé du problème :
Modéliser le fonctionnement d'un diffuseur VOD. La vidéothèque met à disposition de ses clients des films selon trois catégories : Enfant, Normal et Nouveauté. Un film est dans la catégorie Nouveauté pendant quelques semaines, puis passe dans l'une des autres catégories. Le prix des films dépend de la catégorie. Il est probable que le système évolue pour que la catégorie Horreur soit ajoutée.
Solution optimale :

Diagramme de classes :

Diagramme de classes

Grâce aux relations d'héritages, nous sommes capables de distinguer le film de son état. Dans ce cas, l'ajout d'un nouvel état n'implique pas de modification de code.

Solution alternative :

Diagramme de classes :

Diagramme de classes

La classe DVD gère son état comme une énumaration. En faisant cela, la solution impose a switch pour changer de catégorie. Le problème de cette solution concerne l'extensibilité. En effet, si une nouvelle catégorie est ajoutée, la classe DVD devra être modifiée pour gérer le nouveau type.

Les têtes de mule
Cédric BOUHOURS
Cédric BOUHOURS
Cédric BOUHOURS