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

  FORUM HardWare.fr
  Programmation
  Java

  Conseils de design, notification de changements

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conseils de design, notification de changements

n°196912
Cherrytree
cn=?
Posté le 19-08-2002 à 12:08:09  profilanswer
 

J'ajoute des objets de type Job (fait maison) à une ArrayList. Lors de l'ajout j'aimerais qu'un objet de la classe Recorder (maison aussi) appelle une méthode (connue) de l'objet ajouté. De même lors de changements d'état de mon objet, j'aimerai que mon Recorder soit notifié et qu'il appelle une méthode de l'objet qui a changé.
 
Il y a pleins de manières de faire ça, notamment à la babar, en indiquant explicitement à tous les points d'ajouts et de changements de mon programme ce que doit faire le recorder. Il doit aussi y avoir la possibilité de mettre un Listener.
 
D'autres suggestions ? Des conseils précieux pour un design de qualité ?


---------------
Le site de ma maman
mood
Publicité
Posté le 19-08-2002 à 12:08:09  profilanswer
 

n°196947
Cherrytree
cn=?
Posté le 19-08-2002 à 12:52:39  profilanswer
 

:bounce:


---------------
Le site de ma maman
n°196968
HappyHarry
Posté le 19-08-2002 à 13:17:04  profilanswer
 

la méthode babar, bof
le listener je sais pas, mais j'aurais fait comme ca :


class Babar
{
ArrayList maListe;
Recorder monRecorder;
 
public Babar()
{
maListe = new ArrayList
//ton recorder je sais pas d'ou il vient, je suppose qu'il passerait en parametre
}
 
public void add(Job j)
{
//ton bordel avec ton recorder
maListe.add(j);
}
}


 
pas tapai si ca plait pas a tout le monde  :D

n°196997
darklord
You're welcome
Posté le 19-08-2002 à 13:38:15  profilanswer
 

via des interfaces en tout cas


---------------
Just because you feel good does not make you right
n°197149
Cherrytree
cn=?
Posté le 19-08-2002 à 15:15:23  profilanswer
 

DarkLord a écrit a écrit :

via des interfaces en tout cas



Que veux-tu dire par là ?


---------------
Le site de ma maman
n°197152
darklord
You're welcome
Posté le 19-08-2002 à 15:16:36  profilanswer
 

Cherrytree a écrit a écrit :

Que veux-tu dire par là ?




 
busy je t'envoie un mp ce soir si tu sais patienter jusque là


---------------
Just because you feel good does not make you right
n°197153
Cherrytree
cn=?
Posté le 19-08-2002 à 15:16:37  profilanswer
 

HappyHarry a écrit a écrit :

la méthode babar, bof
le listener je sais pas, mais j'aurais fait comme ca :


class Babar
{
ArrayList maListe;
Recorder monRecorder;
 
public Babar()
{
maListe = new ArrayList
//ton recorder je sais pas d'ou il vient, je suppose qu'il passerait en parametre
}
 
public void add(Job j)
{
//ton bordel avec ton recorder
maListe.add(j);
}
}


 
pas tapai si ca plait pas a tout le monde  :D  



A priori c'est la solution la plus simple. Celle que je compte implémenter si je n'ai pas de flash. La curiosité et l'intuition me disent qu'on peut faire mieux.


---------------
Le site de ma maman
n°197154
Cherrytree
cn=?
Posté le 19-08-2002 à 15:16:57  profilanswer
 

DarkLord a écrit a écrit :

 
 
busy je t'envoie un mp ce soir si tu sais patienter jusque là



No problem.


---------------
Le site de ma maman
n°197501
darklord
You're welcome
Posté le 19-08-2002 à 21:20:12  profilanswer
 

Citation :


J'ajoute des objets de type Job (fait maison) à une ArrayList. Lors de l'ajout j'aimerais qu'un objet de la classe Recorder (maison aussi) appelle une méthode (connue) de l'objet ajouté.  


 
passe une interface à la méthode qui ajoute. Cette interface définit la méthode en question ...
 

Citation :


De même lors de changements d'état de mon objet, j'aimerai que mon Recorder soit notifié et qu'il appelle une méthode de l'objet qui a changé.


 
Sans hésiation, listener. Si tu veux de l'aide, demande avec le genre de d'évenements que tu veux gérer et on en discute.
 


---------------
Just because you feel good does not make you right
n°197521
Cherrytree
cn=?
Posté le 19-08-2002 à 22:12:04  profilanswer
 

Je sens que c'est ce que je veux faire. Cela étant, je reste dans le flou intégral. Y a une URL ou une page de Thinking in Java à laquelle je peux me rapporter ?


---------------
Le site de ma maman
mood
Publicité
Posté le 19-08-2002 à 22:12:04  profilanswer
 

n°197650
darklord
You're welcome
Posté le 20-08-2002 à 04:02:49  profilanswer
 

Cherrytree a écrit a écrit :

Je sens que c'est ce que je veux faire. Cela étant, je reste dans le flou intégral. Y a une URL ou une page de Thinking in Java à laquelle je peux me rapporter ?




 
Probablement
pour l'interface c'est assez simple. Lorsque tu ajoutes un job tu voudrais appeller une méthode donnée sans te préoccuper de ce qui a derrière. Definis une interface qui a cette méthode, passe l'interface à ta méthode d'ajout (au niveau signature) et passe au runtime l'objet qui l'implémente.
 
Pour le listener y a eu une discussion sur ce sujet avec exemples.
 
http://forum.hardware.fr/forum2.php3?post=24323&cat=10
 
Si c'est pas clair, ask


---------------
Just because you feel good does not make you right
n°197670
Cherrytree
cn=?
Posté le 20-08-2002 à 08:17:00  profilanswer
 

Je viens de lire et c'est intéressant et bien expliqué. :jap:
Il ne me reste plus qu'à me documenter un peu sur le passage d'interfaces en paramètre.


---------------
Le site de ma maman
n°197675
darklord
You're welcome
Posté le 20-08-2002 à 08:22:50  profilanswer
 

exemple
 

Code :
  1. public interface Worker {
  2.    public void doThis(Object withThisParam);
  3. }


 
Ca c'est ton interface que l'objet qui est passé quel qu'il soit se doit de respecter.
 
Là tu es dans ton recorder qui a une méthode addObject
 

Code :
  1. public void addObject(Worker w) throws AnException {
  2.     // ici tu ne sais pas quel objet est passé en param mais tu t'en fous car tu sais que tu peux appeller doThis dessus
  3. }


 
Ensuite l'objet que tu veux ajouter (Job) n'a qu'a implémenter Worker et le tour est joué. Ton recorder appellera la méthode doThis que tu as du forcément implémenté (puisque Job implémente worker) sans savoir quel objet se cache derrière.
 
Je pense que Job devrait etre une interface en fait. Et que ton job réel devrait implémenter cette interface Job.


Message édité par darklord le 20-08-2002 à 08:24:01

---------------
Just because you feel good does not make you right
n°197677
Cherrytree
cn=?
Posté le 20-08-2002 à 08:27:42  profilanswer
 

Je pense que tu as raison. Après le petit déj, je me remets au code. Merci encore.


---------------
Le site de ma maman
n°201251
phenixl
Posté le 24-08-2002 à 15:02:52  profilanswer
 

Cherrytree a écrit a écrit :

 
D'autres suggestions ? Des conseils précieux pour un design de qualité ?




 
Les design patterns permettent de faire enormement et de facon propre. Dans ton cas : utilise l'Observer Pattern.
 
Un exemple ici :
http://www.patterndepot.com/put/8/observer.pdf
 
Je te conseille vivement de chercher du cote des design patterns. Voici un site avec enormement de bons liens :
http://www.cetus-links.org/oo_patterns.html
 
Sinon un excellent bouquin, "Java Design" de Kirk Knoernschild (chez Addison Wesley), met en rapport Java, le design d'applications, UML et les Design Patterns. Un must.
 
Bye.

n°201614
Cherrytree
cn=?
Posté le 25-08-2002 à 19:18:01  profilanswer
 

En fait, j'attendais fébrilement, qu'on me sorte le nom d'un pattern à utiliser, merci !


---------------
Le site de ma maman
n°201615
Cherrytree
cn=?
Posté le 25-08-2002 à 19:20:24  profilanswer
 

Java Design est en effet très bien, reprenant le bouquin de base sur les DP, mais en Java, comme de bon aloi. :D


---------------
Le site de ma maman
n°201668
phenixl
Posté le 25-08-2002 à 22:09:01  profilanswer
 

Cherrytree a écrit a écrit :

En fait, j'attendais fébrilement, qu'on me sorte le nom d'un pattern à utiliser, merci !




 
You're welcome ;)
 


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

  Conseils de design, notification de changements

 

Sujets relatifs
[HTML] Cohabitation HTML-PHP et Design-ProgrammationSujet: [VB] création de controls activeX, besoin de conseils...
Design et php[HTML] Conseils pour un formulaire
Gros bleme de mise en page d un design :(Cryptanalyse -- Conseils
Design Pattern et C++ 2Design Pattern et C++ ?
[Conseils]Les algorigrammes vous les faites comment?C++ & Polymorphisme... besoin de trucs - conseils - tuto
Plus de sujets relatifs à : Conseils de design, notification de changements


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