Cours design pattern m youssfi partie 6 proxy

4 615 vues

Publié le

Design pattern Proxy

Publié dans : Logiciels
1 commentaire
7 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
4 615
Sur SlideShare
0
Issues des intégrations
0
Intégrations
377
Actions
Partages
0
Téléchargements
715
Commentaires
1
J’aime
7
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours design pattern m youssfi partie 6 proxy

  1. 1. DDeessiiggnn PPaatttteerrnnss PPaarrtt 66 Mohamed Youssfi Laboratoire Signaux Systèmes Distribués et Intelligence Artificielle (SSDIA) ENSET, Université Hassan II Casablanca, Maroc Email : med@youssfi.net Supports de cours : http://fr.slideshare.net/mohamedyoussfi9 Chaîne vidéo : http://youtube.com/mohamedYoussfi Recherche : http://www.researchgate.net/profile/Youssfi_Mohamed/publications med@youssfi.net
  2. 2. PPaatttteerrnn PPrrooxxyy
  3. 3. PPaatttteerrnn PPrrooxxyy Catégorie : ◦ Structure Objectif du pattern ◦ FFoouurrnniirr uunn iinntteerrmmééddiiaaiirree eennttrree llaa ppaarrttiiee cclliieennttee eett uunn objet pour contrôler les accès à ce dernier. Résultat : ◦ Le Design Pattern permet d'isoler le comportement lors de l'accès à un objet. med@youssfi.net
  4. 4. Diagramme de classes dduu ppaatttteerrnn PPrrooxxyy med@youssfi.net
  5. 5. RRaaiissoonn dd’’uuttiilliissaattiioonn Les opérations d'un objet sont coûteuses en temps ou sont soumises à une gestion de droits d'accès. Il est nécessaire de contrôler l'accès à un objet. Cela peut être un système de chargement d'un document. Le document est très lourd à charger en mémoire ou il ffaauutt cceerrttaaiinneess hhaabbiilliittaattiioonnss ppoouurr aaccccééddeerr àà ccee ddooccuummeenntt.. L'objet réel (système de chargement classique) est l'implémentation. L'intermédiaire entre l'implémentation et la partie cliente est le proxy. Le proxy fournit la même interface que l'implémentation. Mais il ne charge le document qu'en cas de réel besoin (pour l'affichage par exemple) ou n'autorise l'accès que si les conditions sont satisfaites. med@youssfi.net
  6. 6. RReessppoonnssaabbiilliittééss Abstraction : définit l'interface des classes Implémentation et Proxy. Implémentation : implémente l'interface. Cette classe définit l'objet que l'objet Proxy représente. Proxy : fournit un intermédiaire entre la partie cliente et ll''oobbjjeett IImmpplléémmeennttaattiioonn.. CCeett iinntteerrmmééddiiaaiirree ppeeuutt aavvooiirr plusieurs buts (synchronisation, contrôle d'accès, cache, accès distant, ...). Dans l'exemple, la classe Proxy n'instancie un objet Implémentation qu'en cas de besoin pour appeler la méthode correspondante de la classe Implémentation. La partie cliente appelle la méthode operation() de l'objet Proxy. med@youssfi.net
  7. 7. IImmpplléémmeennttaattiioonn /* Abstraction.java */ public interface Abstraction { public void operation(); } /* Implemantation.java */ public class Implementation implements Abstraction { @Override public void operation() { System.out.println(Exécution de l'opération de l'implémentation...); }} med@youssfi.net /* Proxy.java */ public class Proxy implements Abstraction { private Implementation implementation; @Override public void operation() { System.out.println(Vérification des conditions d'accès par le proxy); implementation=new Implementation(); implementation.operation(); }}
  8. 8. IImmpplléémmeennttaattiioonn /* Application.java */ public class Client { public static void main(String[] args) { Abstraction proxy=new Proxy(); proxy.operation(); }} Vérification des conditions d'accès par le proxy Exécution de l'opération de l'implémentation... ::CClliieenntt med@youssfi.net ::PPrrooxxyy Créer operation Vérification Créer ::IImmpplléémmeennttaattiioonn operation

×