Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1855 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Design Pattern "Proxy"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Design Pattern "Proxy"

n°1245871
didier1809
${citation_perso}
Posté le 15-11-2005 à 11:34:59  profilanswer
 

:hello:  
 
J'ai un petit problèe de compréhension de ce design pattern...
 
J'ai comprit (a peu pres) le pricipe, qui conciste à appliquer sur le proxy plutot que sur l'objet les methodes que l'on veut.
 
Sur cet exemple :

Code :
  1. /** Interface représentant un espace de dessin */
  2. public interface Canvas {
  3.   /** Ajout d'un objet graphique */
  4.   public void addGraphicElement( GraphicElement ge );
  5. }
  6. /**  Proxy pour l'espace de dessin */
  7. public class CanvasProxy implements Canvas {
  8.   private Canvas c;
  9.   public CanvasProxy( Canvas c ) {
  10.    this.c = c;
  11.   }
  12.   public void addGraphicElement( GraphicElement ge ) {
  13.    c.addGraphicElement( ge );
  14.   }
  15. }


 
Je ne comprend pas tres bien ce que fait la dernière ligne (c.addGraphic...(ge); ) vu que cette methode n'est pas définie :s
 
voici mon ptit prog pour essayer ce cas :
"main"

Code :
  1. public static void main(String[] args) {
  2.  interf_objet obj = null;
  3.  clas_obj oo = new clas_obj(obj);
  4.  oo.modif();
  5.  oo.donne();
  6. }


 
"interface"

Code :
  1. public interface interf_objet {
  2. public void modif();
  3. public int donne();
  4. }


 
"Proxy"

Code :
  1. public class clas_obj implements interf_objet {
  2. private interf_objet po;
  3. public clas_obj(interf_objet po2){
  4.  po = po2;
  5. }
  6. public void modif() {
  7.  // TODO Auto-generated method stub
  8.  System.out.println("Modif ..." );
  9.  po.modif();
  10. }
  11. public int donne() {
  12.  // TODO Auto-generated method stub
  13.  System.out.println("Donne ..." );
  14.  return po.donne();
  15. }
  16. }


 
Merci de m'eclairer   :jap:


---------------
.
mood
Publicité
Posté le 15-11-2005 à 11:34:59  profilanswer
 

n°1245989
bobuse
Posté le 15-11-2005 à 14:02:05  profilanswer
 

didier1809 a écrit :


Code :
  1. /** Interface représentant un espace de dessin */
  2. public interface Canvas {
  3.   /** Ajout d'un objet graphique */
  4.   public void addGraphicElement( GraphicElement ge );
  5. }
  6. /**  Proxy pour l'espace de dessin */
  7. public class CanvasProxy implements Canvas {
  8.   // [...]
  9.   public void addGraphicElement( GraphicElement ge ) {
  10.    c.addGraphicElement( ge );
  11.   }
  12. }


 
Je ne comprend pas tres bien ce que fait la dernière ligne (c.addGraphic...(ge); ) vu que cette methode n'est pas définie :s


sisi elle est définie ;)


---------------
get amaroK plugin
n°1245990
the real m​oins moins
Posté le 15-11-2005 à 14:03:43  profilanswer
 

bobuse a écrit :

sisi elle est définie ;)


non, dans son exemple, la seule implementation de Canvas qu'il ait, c'est ce CanvasProxy..  va pas aller bien loin avec ça [:screetch]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1246063
bartleby
Posté le 15-11-2005 à 15:13:39  profilanswer
 

Le principe du design pattern proxy est d'offrir le meme interface qu'un autre object et de "relayer" les appels.
 
C'est ce que fait la method addGraphicElement du proxy de canvas. Ce que cette method fait, ce n'est pas vraiment important a mon avis.
 
fab

n°1246299
didier1809
${citation_perso}
Posté le 15-11-2005 à 20:14:13  profilanswer
 

bartleby a écrit :

Le principe du design pattern proxy est d'offrir le meme interface qu'un autre object et de "relayer" les appels.
 
C'est ce que fait la method addGraphicElement du proxy de canvas. Ce que cette method fait, ce n'est pas vraiment important a mon avis.
 
fab


 
Vu que tu à l'air de bien connaitre ce design pattern, est-ce que tu pourrais m'expliquer à l'aide d'un petit exemple complet ?
 
merci  :jap:


---------------
.
n°1247077
bartleby
Posté le 16-11-2005 à 20:02:01  profilanswer
 

Je me suis forme aux design patterns (les plus courants) sur ce site:
 
http://www.dofactory.com/Patterns/Patterns.aspx
 
Le proxy est ici (regarde le "structural code", c'est plus clair):
 
http://www.dofactory.com/Patterns/PatternProxy.aspx
 
Tu ne devrais avoir aucun mal a comprendre les exemples ; synthaxe C# et Java sont tres proches.
 
Pour synthetiser:
 
Tu as  
- un client
- un object  RealSubject qui fait le travail (ici, c'est afficher du text, mais ca peut etre un object situe sur une autre machine qui lance un travail de d'analyse de frequence par exemple.)
- un object Proxy qui pour chaque methodes appelle va appelle la methode du RealSubject.
 
RMI (Remote Method Invocation) et Corba fonctionnent avec ce pattern:
 
Tu manipules un proxy d'object local qui relait tes messages sur le server ou est reellement ton object distant.

n°1247153
didier1809
${citation_perso}
Posté le 16-11-2005 à 21:31:12  profilanswer
 

MErci por cette explication, j'avais eu un peu de mal a faire le rapprochement avec RMI, mais c'est vrai que c'est le meme principe :jap:


---------------
.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Design Pattern "Proxy"

 

Sujets relatifs
proxy http[JavaWebStart] Ne pas passer par le proxy
Petit problème avec mon design cssAjouter design sur page HTML/CSS
[CSS] Probleme de menu sur un design !parsing xml, est ce une bonne solution ? (design)
[UML] quel design patern utiliser ?Design pour site web
Config Proxy MAVEN [Urgent]probleme de liens sur un design web !
Plus de sujets relatifs à : Design Pattern "Proxy"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR