SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
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
PPaatttteerrnn PPrrooxxyy
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
Diagramme de classes dduu ppaatttteerrnn PPrrooxxyy 
med@youssfi.net
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
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
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(); 
}}
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

Mais conteúdo relacionado

Mais procurados

Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 

Mais procurados (20)

Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 

Destaque (6)

Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 

Semelhante a Cours design pattern m youssfi partie 6 proxy

DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creationomri med
 
De Legacy à Symfony
De Legacy à SymfonyDe Legacy à Symfony
De Legacy à SymfonyAlayaCare
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptxManalAg
 
Développement d'un forum de discussion
Développement d'un forum de discussionDéveloppement d'un forum de discussion
Développement d'un forum de discussionYoussef NIDABRAHIM
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
 
CDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGICDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGIAntoine Sabot-Durand
 
CDI par la pratique
CDI par la pratiqueCDI par la pratique
CDI par la pratiqueIppon
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...Hamza SAID
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfMoez Moezm
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteAhmed-Chawki Chaouche
 

Semelhante a Cours design pattern m youssfi partie 6 proxy (20)

Design patterns
Design patternsDesign patterns
Design patterns
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
Java RMI
Java RMIJava RMI
Java RMI
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
De Legacy à Symfony
De Legacy à SymfonyDe Legacy à Symfony
De Legacy à Symfony
 
Multithreading
MultithreadingMultithreading
Multithreading
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptx
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Développement d'un forum de discussion
Développement d'un forum de discussionDéveloppement d'un forum de discussion
Développement d'un forum de discussion
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
CDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGICDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGI
 
CDI par la pratique
CDI par la pratiqueCDI par la pratique
CDI par la pratique
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
 

Mais de ENSET, Université Hassan II Casablanca

Mais de ENSET, Université Hassan II Casablanca (7)

Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFITheses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 

Cours design pattern m youssfi partie 6 proxy

  • 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
  • 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. Diagramme de classes dduu ppaatttteerrnn PPrrooxxyy med@youssfi.net
  • 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. 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. 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. 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