Warning: session_start() [function.session-start]: open(/var/lib/php-sessions//sess_de23feef5fcfcb368a5d354740e4afe0, O_RDWR) failed: Permission denied (13) in /datas/vol2/w4a141629/var/www/goprod.bouhours.net/htdocs/common.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /datas/vol2/w4a141629/var/www/goprod.bouhours.net/htdocs/common.php:2) in /datas/vol2/w4a141629/var/www/goprod.bouhours.net/htdocs/common.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /datas/vol2/w4a141629/var/www/goprod.bouhours.net/htdocs/common.php:2) in /datas/vol2/w4a141629/var/www/goprod.bouhours.net/htdocs/common.php on line 3
GOPROD • GOod PRactice in Object oriented Design
Identifiant :
Mot de passe :

Patrons de conception

Développement complet depuis <<Implémenteur>>

Diagramme de classes :

Diagramme de classes

Points forts :

  1. 1. Extensibilité
    1. KO 1.1 L'ajout ou la suppression d'un implémenteur concret n'implique pas de modification de code
    2. KO 1.2 L'ajout ou la suppression d'une abstraction fine ne nécessite pas de modification de code
  2. 2. Découplage entre abstraction et implémenteur
    1. KO 2.1 Nombre minimal d'implémenteurs concrets
    2. OK 2.2 Factorisation maximale du lien entre abstraction et implémenteur

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

Problème 1 :

Enoncé du problème :
Concevez un système permettant de changer le style de fenêtres à l'écran. Trois types de fenêtre sont possibles : simple, avec menu et transparente. Le style de ces fenêtres dépend de la plate-forme d'utilisation. Deux plates-formes sont considérées, Gnome et XFCE. Le code client doit pouvoir être écrit indépendamment et sans connaissance à priori de la future plate-forme d’exécution.
Solution optimale :

Diagramme de classes :

Diagramme de classes

Dans cette solution, il y a une véritable séparation entre le style des fenêtres et leur contenu. Il est possible d'ajouter un nouveau style ou un nouveau type sans aucune modification de code.

Solution alternative :

Diagramme de classes :

Diagramme de classes

Probablement le pire case avec l'abstraction sous l'implémentation simple

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

Warning: Unknown: open(/var/lib/php-sessions//sess_de23feef5fcfcb368a5d354740e4afe0, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php-sessions/) in Unknown on line 0