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.
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.
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.
Cliquez ici pour voir le patron abîmé déduit de cette solution alternative
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.
Cliquez ici pour voir le patron abîmé déduit de cette solution alternative