SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
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
 
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 POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
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
 
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
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
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)
 
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 NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
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 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 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 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...
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
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
 
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)
 

Ähnlich wie Cours design pattern m youssfi partie 6 proxy

Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
Moez Moezm
 

Ähnlich wie 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
 

Mehr von ENSET, Université Hassan II Casablanca

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...
ENSET, Université Hassan II Casablanca
 
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
ENSET, Université Hassan II Casablanca
 

Mehr von ENSET, Université Hassan II Casablanca (9)

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...
 
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
 
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
 

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