Design Pattern2 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Patrons de comportement et structuration

Patron Observateur

Probléme 

une entreprise souhaite qu'une application météo affiche des informations météorologiques, la météo actuelle, etc.

Client demende : Affichage des informations métriologique Condition : Si temperature change => affichage de temperature change

Schéma de probléme

Les données

NOTRE implémentation

Première solution:

Problème sur la solution

Le Patron Observateur

Le Principe:

Une journée dans la vie de l'Observer Pattern

Une journée dans la vie de l'Observer Pattern

Une journée dans la vie de l'Observer Pattern

Une journée dans la vie de l'Observer Pattern

Une journée dans la vie de l'Observer Pattern Sujet ordre

Sujet_objet ordre: 8

$sujet_objet = new Sujet(8) $sujet_objet -> ordre = 14

Une journée dans la vie de l'Observer Pattern

Observateur en UML: Chaine youtube

Doranco AjouterABonne() SupprimerAbonne() NOtifierAbonne() Abonnes = [Rachid1 , Oumar]

Rachid consulte doranco Doranco notifie rachid

Abbonne

Rachid D = new Doranco()

OUmar D = new Doranco()

rachid1 = new Rachid() oumar2 = new Oumar() AjouterAbonne(rachid1) AjouterAbonne(oumar2)

Solution pour le problème précèdent

Régle: de conception : séparer les parties qui changent de celles qui restent les mêmes

Le Patron Stratégie

Probléme une entreprise veut une application de canard qui affiche des canards qui nagent, cancanent et volent. s'ils peuvent voler

Solution:

Probléme: le canard domestique va hérité la méthode « voler » alors que le canard domestique ne peut pas voler

Solution

Probléme: Conception “spaghetti”

Règle: on regroupe ce qui change ici , ce qui est entrain de changer c’est comportement de chaque canard

Solution : “Strategy Pattern”

Patron de stratégie:Le Strategy pattern fait partie des Behavioral patterns (patrons comportementaux) qui équipent un logiciel avec différentes méthodes de résolution. Ces stratégies sont en réalité une famille d’algorithmes séparés du programme à proprement parler et autonomes (= interchangeables). Un patron de conception Stratégie inclut également des lignes directrices et des outils pour les développeurs. Les Strategy patterns décrivent ainsi comment structurer des classes, organiser un groupe de classes et créer des objets. L’une des particularités du Strategy pattern réside dans le fait qu’il est possible de réaliser un comportement de programme et d’objet variable même pendant l’exécution d’un logiciel.

Principe:

Le patron stratégie en uml:Pour la représentation d’un patron de conception Stratégie, on choisit en général un diagramme de classes avec au moins trois composants de base : ---Context (contexte ou classe de contexte) ---Strategy (stratégie ou classe de stratégie) ---ConcreteStrategy (stratégie concrète)

Solution pour le problème précèdent

Solution pour le problème précèdent

Le Patron Composite

Probléme le restaurant a besoin d'une application qui affichera les menus

Donc…une simple solution est d’avoir une classe avec des méthodes qui affiche le menu princpale CLASSE

Appel et instancat ion

Résultat,,,

Bravo…mais le restaurant veut sousmenu aussi Et baah c’est simple

Développeur

Solution est d’ajouter une méthode comme une sous-menu et après on appelle cette méthode dans la méthode de menu principale pour un affichage globale APPEL DE SOUS-MENU

Declaration de sous-menu

Résultat

SIMPLE ET EFFICACE ET VOILAA

Réstaurent veut ajouter a chaque sous menus un sous sous menus et chaque sous sous menu un autre sous sous sous menu Et baah c’est Trop

Développeur

Question de problème : es que il y-a un moyen d’afficher toutes menu et sous-menus sans avoir beaucoup de dépecé et une suppression dynamique qui n’influence pas sur autres élément dans hiérarchie !!!!!!!!

Patron Composite

Patron composite (“défintion”) 

un patron composite est un patron de conception (design pattern) structurel1. Ce patron permet de concevoir une structure arborescente, par exemple une représentation d'un dossier, ses sous-dossiers et leurs fichiers comme « arbres »

Schema sur la solution avec composite

Accés des élements

Réprésentation UML de composite

UML de la solution Menu

Dernier_sous_menu

Sous-Menu

Implémentation en Javascript(TP)

Référence: