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

  FORUM HardWare.fr
  Programmation
  Java

  [Java] delegation pattern

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] delegation pattern

n°518327
red factio​n
Posté le 19-09-2003 à 16:26:41  profilanswer
 

bon delegation ca consiste a etendre une classe en reportertant les nouvelles fonctions dans une autre classe. Au lieu d'utiliser l'heritage qui est bcp plus lourd et lent.
 
et les pattern c des  classes toute faites mises a la disponisition des utilisateurs
 

Code :
  1. //ClassA  
  2. public class ClassA{
  3.     //data  
  4.     private ClassB classB;
  5.     //methods  
  6.     public classeA(){ classeB = new ClasseB(); }
  7.     public void m1(){classB.m1();} //delegation
  8.     public void m2(){...}
  9. }
  10.   //ClassB  
  11. public class ClassB{
  12.     public void m1(){...}
  13. }


 
c bon tout ca ??
 delegation pattern c simplement les 2 ensemble ????
qqn saurait me donner un exemple ????


Message édité par red faction le 19-09-2003 à 17:29:01
mood
Publicité
Posté le 19-09-2003 à 16:26:41  profilanswer
 

n°518403
the real m​oins moins
Posté le 19-09-2003 à 18:00:29  profilanswer
 

c'est la rentrée  :sleep:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°518406
Taz
bisounours-codeur
Posté le 19-09-2003 à 18:09:40  profilanswer
 

Citation :

Au lieu d'utiliser l'heritage qui est bcp plus lourd et lent.

ce qu'il faut pas entendre

n°518424
red factio​n
Posté le 19-09-2003 à 18:33:16  profilanswer
 

Taz a écrit :

Citation :

Au lieu d'utiliser l'heritage qui est bcp plus lourd et lent.

ce qu'il faut pas entendre


 
ben c ce que jai lu sur une page web ca avait l'air serieux

n°518426
red factio​n
Posté le 19-09-2003 à 18:33:54  profilanswer
 

je demande pas de faire une analyse complete de la delegation juste me dire si c bon ou pas et me donner qq pistes


Message édité par red faction le 19-09-2003 à 18:34:09
n°518427
schnapsman​n
Zaford Beeblefect
Posté le 19-09-2003 à 18:35:56  profilanswer
 

red faction a écrit :

je demande pas de faire une analyse complete de la delegation juste me dire si c bon ou pas et me donner qq pistes


 
d'après ce que tu as écrit, je dirais que tu n'as rien compris.
Mon conseil: dort bien, vide toi la tête et relit ton cours en repartant du début.


Message édité par schnapsmann le 19-09-2003 à 18:36:44

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°518428
red factio​n
Posté le 19-09-2003 à 18:37:26  profilanswer
 

SchnapsMann a écrit :


 
d'après ce que tu as écrit, je dirais que tu n'as rien compris.
Mon conseil: dort bien, vide toi la tête et relit ton cours en repartant du début.


 
ya pas de cours justement c debrouille totale

n°518430
schnapsman​n
Zaford Beeblefect
Posté le 19-09-2003 à 18:38:15  profilanswer
 

red faction a écrit :


 
ya pas de cours justement c debrouille totale


 
dans ce cas va t'acheter un bouquin sur les designs patterns, si c'est ça dont il s'agit.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°518431
Taz
bisounours-codeur
Posté le 19-09-2003 à 18:44:47  profilanswer
 

tiens, on a aucun sujet à propos de DP  :heink:

n°518441
Joel F
Real men use unique_ptr
Posté le 19-09-2003 à 18:57:01  profilanswer
 

J'ai ce qui faut si il faut ...

mood
Publicité
Posté le 19-09-2003 à 18:57:01  profilanswer
 

n°518445
Taz
bisounours-codeur
Posté le 19-09-2003 à 19:01:17  profilanswer
 
n°518457
the real m​oins moins
Posté le 19-09-2003 à 19:11:46  profilanswer
 

Joel F a écrit :

J'ai ce qui faut si il faut ...

i faut pas  :non: les bouquins pirates c mal :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°518464
Joel F
Real men use unique_ptr
Posté le 19-09-2003 à 19:18:03  profilanswer
 

:fou: hmmm je pensais a un cours made from scratch by myself :o

n°518490
benou
Posté le 19-09-2003 à 19:53:17  profilanswer
 

red faction a écrit :

je demande pas de faire une analyse complete de la delegation juste me dire si c bon ou pas et me donner qq pistes


oui, ce que tu fais c'est de la délégation ... mais vraiment, ca doit pas être plus rapide que l'héritage qui n'est ni lourd ni lent. Au contraire.
 
remarque : quand on fait de la délégation, c'est souvent pratique de passer par des interface et de permettre de modifier l'objet qui fait réellement le boulot. Dans ton exemple, il faudrait que B soit une interface et que tu permette dans la classe A de modifier l'attribut B. ex :  
 

Code :
  1. public class ClassA{ 
  2.    // objjet qui fait le boulot  
  3.    private InterfB bosseur; 
  4.    public classeA(InterfB bosseur){ this.bosseur = bosseur; }
  5.    public classeA(){
  6.       // comportement par défaut : on utilise un object ClassB  
  7.       this(new ClassB());
  8.    }
  9.    // permet de modifier dynamiquement l'objet de délégation
  10.    public void setBosseur(InterfB bosseur) {
  11.       this.bosseur = bosseur;
  12.    }
  13.    public void m1(){this.bosseur.m1();} //delegation  
  14.    public void m2(){...} 
  15. }
  16. public interface InterfB {
  17.    public void m1();
  18. }
  19. public class ClassB implements InterfB { 
  20.    public void m1(){...} 
  21. }


---------------
ma vie, mon oeuvre - HomePlayer
n°518537
red factio​n
Posté le 19-09-2003 à 21:09:28  profilanswer
 

benou a écrit :


oui, ce que tu fais c'est de la délégation ... mais vraiment, ca doit pas être plus rapide que l'héritage qui n'est ni lourd ni lent. Au contraire.
 
remarque : quand on fait de la délégation, c'est souvent pratique de passer par des interface et de permettre de modifier l'objet qui fait réellement le boulot. Dans ton exemple, il faudrait que B soit une interface et que tu permette dans la classe A de modifier l'attribut B. ex :  
 

Code :
  1. public class ClassA{ 
  2.    // objjet qui fait le boulot  
  3.    private InterfB bosseur; 
  4.    public classeA(InterfB bosseur){ this.bosseur = bosseur; }
  5.    public classeA(){
  6.       // comportement par défaut : on utilise un object ClassB  
  7.       this(new ClassB());
  8.    }
  9.    // permet de modifier dynamiquement l'objet de délégation
  10.    public void setBosseur(InterfB bosseur) {
  11.       this.bosseur = bosseur;
  12.    }
  13.    public void m1(){this.bosseur.m1();} //delegation  
  14.    public void m2(){...} 
  15. }
  16. public interface InterfB {
  17.    public void m1();
  18. }
  19. public class ClassB implements InterfB { 
  20.    public void m1(){...} 
  21. }

 


 
 
ok sinon deux petites questions :  
(newbie en java, notions pas encore vues)
 
implements c uniquement avec les interfaces ??? c un peu comme le extend mais au lieu detre une classe  c une interface???
 
 
jai pas bien capté la nuance entre interface et abstract

n°518547
benou
Posté le 19-09-2003 à 21:29:05  profilanswer
 

mouais ... à ce niveau tu devrais lire un bouquin plutot que de poser la question ..
 

Citation :

implements c uniquement avec les interfaces ???


oui
 

Citation :

jai pas bien capté la nuance entre interface et abstract


la notion est la même ...
tu peux voir une classe abstraite comme une interface à moitiée implémetée ou (à l'inverse) comme une classe qui n'implémenterait qu'à moitiée une interface.
 
C'est souvent utilisé pour factoriser du code genre tu dois faire 3 classes qui remplissent le même rôle et qui ont un comportement presque identique à quelques exception prêt, tu fais une classe abstraite en mettant les comportement différent abstrait. Ensuite tu fais 3 classes qui hérite de la classe abstraire et elle n'ont plus qu'à implémenter leur comportement spécifique : le comportement commun est hérité de la classe abstraite.
C'est une vision sipplifiée des choses mais pour débuter tu peux voir les choses comme ca.
 
Va faire un tour sur la java faq pour trouver un bon bouquin. Je te conseille Thinking in java


---------------
ma vie, mon oeuvre - HomePlayer
n°518550
red factio​n
Posté le 19-09-2003 à 21:34:12  profilanswer
 

benou a écrit :

mouais ... à ce niveau tu devrais lire un bouquin plutot que de poser la question ..
 

Citation :

implements c uniquement avec les interfaces ???


oui
 

Citation :

jai pas bien capté la nuance entre interface et abstract


la notion est la même ...
tu peux voir une classe abstraite comme une interface à moitiée implémetée ou (à l'inverse) comme une classe qui n'implémenterait qu'à moitiée une interface.
 
C'est souvent utilisé pour factoriser du code genre tu dois faire 3 classes qui remplissent le même rôle et qui ont un comportement presque identique à quelques exception prêt, tu fais une classe abstraite en mettant les comportement différent abstrait. Ensuite tu fais 3 classes qui hérite de la classe abstraire et elle n'ont plus qu'à implémenter leur comportement spécifique : le comportement commun est hérité de la classe abstraite.
C'est une vision sipplifiée des choses mais pour débuter tu peux voir les choses comme ca.
 
Va faire un tour sur la java faq pour trouver un bon bouquin. Je te conseille Thinking in java


 
merci pour toutes ces reponses...
 
bah en tout cas jai deja une grande avance vu que jai 1an et demi de c++ (noitions objet,heritage, classes virtuelles, ...)


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

  [Java] delegation pattern

 

Sujets relatifs
Interaction avec mon prog java[linux] commication avec une appli java depuis le kernel
[java]erreur lors de compilation sous Visual Studio.net[Java][Swing] cherche idée pour garder un focus clavier [résoudu]
[Java] Problème de classpath avec un fichier Jar[Java][Swing] Problème de taille avec JSplitPane [résolu]
[JAVA-Server X] UnsupportedLookAndFeelExceptio n[JAVA] Forum java/mysql propre
[JAVA] Jalopy, comment régler ça ?[JAVA] Formattage code source : tab ou espace pour indenter ?
Plus de sujets relatifs à : [Java] delegation pattern


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