Identifiant :
Mot de passe :

Patrons de conception

Réification partielle de la commande

Diagramme de classes :

Diagramme de classes

Points forts :

  1. 1. Extensibilité
    1. KO 1.1 L'ajout ou la suppression d'une commande ne nécessite pas de modification de code
    2. KO 1.2 Factorisation du protocole des commandes
  2. 2. Protocole uniforme
    1. OK 2.1 Point d'accès unique pour l'exécution des commandes
  3. 3. Historisation simplifiée
    1. KO 3.1 Historisation des commandes facilité

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

Problème 1 :

Enoncé du problème :
Afin d'animer la lumière lors d'un spectacle, on utilise une console permettant d'allumer ou d'éteindre des lumières ou des appareils (comme une machine à fumée). La mémorisation de séquences d'allumage ou d'extinction est importante au dynamisme du spectacle. Modélisez donc la possibilité pour une console de lumière d'enchaîner des actions sur des lumières ou une machine à fumée.
Solution optimale :

Diagramme de classes :

Diagramme de classes

A classical instantiation of the pattern.

Solution alternative :

Diagramme de classes :

Diagramme de classes

This solution grants all the management to the System class but separates the real operation in different classes. So, the solution is valid, but imposes a lot of communications between the System class and the operations classes. Moreover, System does not memorize the operation but an identifier from OperationType. So, the System class must test all the identifiers during the computeOperation that is problematic if there are a lot of operations.

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