La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Design Pattern Hichame ELKHALFI.

Présentations similaires


Présentation au sujet: "Design Pattern Hichame ELKHALFI."— Transcription de la présentation:

1 Design Pattern Hichame ELKHALFI

2 Design pattern de création
Factory Method Abstract Factory Singleton Builder prototype

3 Design pattern de structure
Composite Bridge Decorator Adapter Proxy

4 Design pattern de comportement
Iterator Command Mediator State Observer Templatre

5 Design pattern de BluePrint
Struts WebServices JSF

6 Déroulement Cours et TP sur machine Seance 5 – contrôle continue

7 Design pattern de création
Factory Method Abstract Factory Singleton

8 Factory Method Création indirecte d'instance déléguée au niveau d'une sous classe. Elle gère les détails de la création des objets. Exemple pas bon : VoitureHybride. Dans l’exemple : Inconvénient: - si on rajoute une autre voiture il faut rajouter des if. - concentrer la complexité à un seul endroit

9 Factory Method Solution:FactoryMultiMarque
Une interface abstraite (Usine) pour crée un produit (Voiture). La spécialisation se fera au niveau des classe factory concrete (FactoryMultiMarque) et des produits concret (407, Serie3).

10 Abstract Factory Instanciation indirecte de familles de produits. (ex: Look & Feel "Windows" ou "X11/Motif"). En changeant de fabrique on génère des objets différents(look1,look2, ....) qui ont néanmoins les mêmes fonctionnalités (même interfaces).

11 Abstract Factory Fournir une interface abstraite pour crée une famille de produit. FabriqueComposant : FabriqueComposantSolide Crée une roue : plate, plastique Crée une planche : en chêne , en plastique Crée une visse : en acier, en bois FabriqueComposantLeger

12 Singleton Garantie qu’il existe au plus une seule instance d’une classe. Exemple : Gestion de pool de connexion. Factory ^_^

13 Singleton Constructeur privé Méthode d’accès static. Code
Monothread : SingeltonMonoThread Multithread : SingeltonMultiThread

14 Builder Encapsuler la construction d’un produit et permettre de le construire par étape. Il ne doit pas être confondu avec une Factory elle ne permet de définir comment un objet va être construit

15 Builder On peut exploiter les Builder en complément d'une Fabrique. Un Fabrique utilise alors le Builder pour "monter" l'objet retourné.

16 Prototype Créer de nouveaux objets en partant d’objets existants .
En java, on utilise la méthode clone() La méthode clone : il faut une interface clonable et implémenter la méthode clone et faire super.clone() => montrer la Classe Moto

17 Design pattern de structure
Bridge Composite Decorator Adapter Proxy

18 Bridge / Pont Découple une abstraction de son implémentation.
Ainsi, chacun des éléments pourra se voir modifié indépendamment l'un de l'autre

19 Bridge/pont Exemple télécommande version 1

20 Composite Compose des structures arborescentes pour représenter des hiérarchies composant/composé. Il permet au client de traiter de la même façon les objets individuels et les combinaisons de ceux-ci.

21 Composite Exemple: Carte du restaurant Menu enfant Menu adulte Dessert

22 Decorator Il ajoute des responsabilités à une classe de manière :
Dynamique : lors du Runtime Sans trop d’héritage

23 Decorator Exemple : Machine à café old génération. boisson café choco
lait laitsucre Chococafe the

24 Decorator Exemple : Machine à café new génération. Sucre Chocolat café
Prix() 0.23€ 0.05€ 0.10€ 0.38€

25 Composant référence decorator execution ExecutionDecorator 1
sayHello() decorator execution ExecutionDecorator 1 ExecutionDecorator2

26 Adapter Utilisé pour: Convertir l'interface d'une classe en une autre répondant aux besoins spécifiés par le client. Joue le rôle d’intermédiaire entre le client et le fournisseur

27 <<Intercafe>>
Adapter Exemple: Adaptateur Souris : USB – PS/2 Prise électrique : Usa vs EU <<Intercafe>> Cible Requete() Client Adaptateur Requete() Adapté RequeteSpécifique()

28 Proxy C’est un remplaçant d’un objet réel.
Il joue le rôle de représentant local d’un objet distant Interface implémente implémente SujetReel Proxy utilise

29 Proxy Exemple: RMI Proxy HTTP

30 Adapter vs Proxy ADAPTER vs PROXY. ADAPTER et PROXY ont une structure semblable. PROXY préserve l'interface, alors qu' ADAPTER transforme l'interface. En outre, PROXY implique souvent (pas toujours) un accès à distance, alors que ADAPTER est généralement local.

31 Design pattern de comportement
Iterator Command Mediator State Observer Template

32 Iterator Pour parcourir un objet composé (ex : une collection) sans exposer la structure interne de celui-ci. L’iterator encapsule la manière dont une collection va être parcouru.

33 Iterator Ajouter une méthode ‘getIterator’ à la collection.
L’iterator doit avoir des méthodes pour parcourir la collection: next() hasNext() last() …… Exemple : java.util.Iterator, java.util.ArrayList

34 Mediator Réveil Cafetière Calendrier Arrosage
receptionEveneemnt(){ verifierCalendrier(); veriierReveil(); } receptionEveneemnt(){ verifierCalendrier(); veriierArrosage(); demarrerCafetiere(); } Réveil Calendrier Cafetière Arrosage receptionEveneemnt(){ verifierCalendrier(); verifierTemperature(); verifierPlui(); } On a une maison futuriste Exemple : Ici on voir que tous les objet sont couplés les un au autre, si par exemple on modifie le comportement du calendrier, il faut aussi modifier le comportement de tous les autre objet qui l’utilise receptionEveneemnt(){ verifierJour(); programmerArrosage(); programmerCafetiere(); programmerReveil() }

35 Mediator Centraliser le contrôle et les communications complexes entre objets Augmente la réutilisabilité des objets, en les découplant. Exemple : Quand

36 Mediator Cafetière Réveil Mediator Arrosage Calendrier Exemple :
receptionEveneemnt(){ If(weekend){ verfierTemperature() } If (reveilEvenement){ verifierCalendrier(); veriierArrosage(); demarrerCafetiere(); //suite Mediator Arrosage Calendrier Exemple : Si on a une mise à jour, on va modifier le mediator

37 Command Encapsule une requête comme un objet. Un command regroupe :
Les actions Le récepteur L’objet command est une « Boite  noire », le client ne sait pas ce qui se passe à l’intérieur. Le client sait que sa requête sera satisfaite par le billet d’une méthode : execute() Exemple : Quand

38 Command Un commande: Les actions: Le récepteur: Allumer, éteindre
Lampe, climatiseur Exemple : Quand

39 Command on off 2 récepteurs. 4 commandes. Lampe Climatiseur on off
Exemple : Quand

40 Command public interface Commande { public void executer(); }
public class CommandeAllumerLampe implements Commande { Lampe lampe; public CommandeAllumerLampe(Lampe lampe) { this.lampe = lampe; } public void executer() { lampe.marche(); récepteur Exemple : Quand action

41 Command Télécommande : référence les différentes commandes
Autre commande : CommandeEteindreLampe Télécommande : référence les différentes commandes Exemple : Quand

42 Etat Permet à un objet de modifier son comportement quand son état interne change. Tout se passera comme si l’objet changerait de classe En encapsulant chaque état dans une classe, nous isolons tous les changement qui seront nécessaires. Exemple : Quand

43 Etat Exemple : Montre électronique Exemple : Quand

44 Observer Définit une relation entre objet de type un à plusieurs, de façon que, quand un objet change d’état, tous ceux qui en dépendent en soient notifiés et soit mis à jours automatiquement. Principe : Diffusion + Souscription Exemple : Quand

45 Observer 2 familles d’objet: Liste de diffusion Les observateurs
L’observable : celui qu’on observe Liste de diffusion Observateur : les Observable : publication d’un nouveau message Exemple : Quand

46 Template Définit le squelette d’un algorithme et permet aux sous-classes de fournir l’implémentation d’une ou plusieurs étapes. Exemple : Quand

47 Template On peut trouver plusieurs type de gréve : ratp, sncf, etc…
Par contre elle suivent toutes la même logique Exemple : Quand

48 Template Préparation d’un grève L’algorithme général negociation()
If(!negociation){ ecrireRevendication(); publierRevendication(); arreterTravail(); } reprendreTravail(); Exemple : Quand

49 Template La classe Grève implementera la logique
Les classes filles implémenterons les actions. Exemple : Quand


Télécharger ppt "Design Pattern Hichame ELKHALFI."

Présentations similaires


Annonces Google