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 :
Modéliser un didacticiel pour apprendre à programmer une calculette. Cette calculette exécute les quatre opérations arithmétiques de base. Le but de ce didacticiel est de permettre de saisir un ensemble d’opérations à effectuer séquentiellement. Le didacticiel présente un bouton par opération arithmétiques, et deux champs de saisie pour les opérandes. Après chaque clic sur un bouton d’une opération, l’utilisateur a alors le choix de recommencer ou d’exécuter la suite d’opérations pour obtenir le résultat. Il est probable que ce didacticiel évolue afin de permettre à l’utilisateur de supprimer la dernière opération de la liste et de prendre en compte l’opération de modulo.
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