Avis et surtout critiques sur mon prog Java SVP [JAVA] - Programmation
Marsh Posté le 17-06-2002 à 14:03:57
De même j'utilise des threads qui traitent les clients.
Et pour accéder aux méthodes de ma classe Chat j'ai pas trouvé d'autres moyens que de déclarer une variable d'instance "leChat" de type Chat et de passer this dans le constructeur de ma thread.
Ensuite je fais leChat.traiterReponse();
Ca me parait pas top mais je vois pas comment faire?
Marsh Posté le 17-06-2002 à 14:15:29
shinji a écrit a écrit : De même j'utilise des threads qui traitent les clients. Et pour accéder aux méthodes de ma classe Chat j'ai pas trouvé d'autres moyens que de déclarer une variable d'instance "leChat" de type Chat et de passer this dans le constructeur de ma thread. Ensuite je fais leChat.traiterReponse(); Ca me parait pas top mais je vois pas comment faire? |
Tu déclares une interface qui définit une méthode traiterReponse(). Tu utilises cette interface dans le constructeur de ta thread. Ton programme implémente l'interface et passe this lorqu'il instancie la thread.
C'est la solution la plus propre (on appelle ca un callback)
Marsh Posté le 17-06-2002 à 14:17:46
DarkLord a écrit a écrit : Tu déclares une interface qui définit une méthode traiterReponse(). Tu utilises cette interface dans le constructeur de ta thread. Ton programme implémente l'interface et passe this lorqu'il instancie la thread. C'est la solution la plus propre (on appelle ca un callback) |
Marsh Posté le 17-06-2002 à 14:18:40
Merci, bon ben ok si c'est la méthode la plus propre
C'est pareil pour l'interface ?
Marsh Posté le 17-06-2002 à 14:24:18
ta méthode n'est pas propre du tout. L'interface oui. T'avais compris quoi?
Marsh Posté le 17-06-2002 à 14:26:51
ha ok j'avais pas bien compris, merci. Je vais tacher de changer ça.
Merci encore
Marsh Posté le 17-06-2002 à 14:29:10
Code :
|
Marsh Posté le 17-06-2002 à 14:36:54
les noms sont pas top je te laisse choisir
Marsh Posté le 18-06-2002 à 10:52:11
Je pense que j'ai besoin d'explications sur le callback .
Dans l'interface callback je met uniquement la déclaration de traiterReponse() et je laisse le code de traiterReponse dans MainAppli ?
Marsh Posté le 18-06-2002 à 10:58:17
shinji a écrit a écrit : Je pense que j'ai besoin d'explications sur le callback . Dans l'interface callback je met uniquement la déclaration de traiterReponse() et je laisse le code de traiterReponse dans MainAppli ? |
une interfance est juste là pour dire, l'objet que je vais te passer a telle fonctionnalités.
Si tu implémentes Callback tu es obligé d'implémenter TOUTES les signatures qui sont dedans.
Donc tu n'as pas le choix!
L'interface déclare l'aspect public
Ton appli l'implémente
Tu passe l'interface à ton thread et lui s'en fout de savoir quel objet est derrière. Tout ce qu'il l'intéresse c'est que la méthode traiterReponse est accessible. Tu pourrais très bien créer un objet séparé de ton appli et passer cet objet là (c'est un avantage d'ailleurs cette transparence).
je crois que t'aurais besoin d'un bon bouquin ...
Marsh Posté le 18-06-2002 à 10:59:11
ah oui et peut etre un truc qui est pas hyper clair dans ma réponse, tu ne peux pas mettre de code dans une interface. Juste des signatures de méthode et des attributs "static final"
Marsh Posté le 17-06-2002 à 14:00:27
J'ai fait mon appli : classe Chat avec un main
et mon interface : classe AppChat
je fais "frame = new AppChat(this);" dans le constructeur de Chat. Mais pour avoir accès aux textFields de l'interface, j'ai déclaré une variable d'instance frame de type AppChat.
Est-ce que c'est une bonne métode ou alors c'est pas propre?