Identifiant :
Mot de passe :

Patrons de conception

Mauvaise classification

Diagramme de classes :

Diagramme de classes

Points forts :

  1. 1. Extensibilité
    1. OK 1.1 Factorisation de protocole pour tous les états
    2. OK 1.2 L'ajout ou la suppression d'un état n'implique pas de modification de code
  2. 2. Gestion simplifiée
    1. KO 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 catégorie est une sous classe de VID, imposant la destruction des instances pour changer la catégorie. La question de la validité de la solution est ouverte su l'énoncé. Cependant, nous avons considéré cette solution comme valide en utilisant la patron Prototype et en utilisant une catégorie en paramètre.

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