Identifiant :
Mot de passe :

Patrons de conception

Encapsulation d'appels de méthodes

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 1 :

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.

Cliquez ici pour voir le patron abîmé déduit de cette solution alternative

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