Identifiant :
Mot de passe :

Patrons de conception

Développement maximal sur <<Composant>>

Diagramme de classes :

Diagramme de classes

Points forts :

  1. 1. Extensibilité
    1. KO 1.1 L'ajout ou la suppression d'un décorateur n'implique pas de modification de code
    2. KO 1.2 L'ajout ou la suppression d'un objet à décorer n'implique pas de modification de code
  2. 2. Découplage entre les objets décorateurs et les objets à décorer
    1. OK 2.1 Nombre minimal de classes Décorateur
    2. KO 2.2 Factorisation maximale entre les décorateurs et les objets à décorer
  3. 3. Gestion des décorateurs à l'exécution
    1. OK 3.1 Les objets à décorer n'ont aucune connaissance des décorateurs
    2. KO 3.2 Un décorateur peut être décoré par un autre décorateur

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

Problème 1 :

Enoncé du problème :
Modéliser un système permettant d'afficher des objets visuels à l'écran. Un objet visuel peut être un texte ou une image. En cas de besoin, le système doit permettre d'ajouter à ces objets une barre de défilement verticale, une barre de défilement horizontale, et une bordure (tous ces ajouts sont cumulables). Il est probable que le système évolue pour que l'on puisse ajouter aux objets visuels une barre de menu.
Solution optimale :

Diagramme de classes :

Diagramme de classes

In this solution, if we add a new decoration, there is no code modification. Moreover, the decorators are able to decorate themselves.

Solution alternative :

Diagramme de classes :

Diagramme de classes

In this solution, it is not possible to add or to remove a object to decorate withtout doing code mofication. The factorisation between decorators and objects to decorate is not maximal. Moreover, a decorator cannot be decorated by another decorator.

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