Héritage multiple ?

Héritage multiple ? - Java - Programmation

Marsh Posté le 01-06-2005 à 18:36:47    

bonjour ,  
 
j'ai deux classes :  
 
class une extends JFrame implements ActionListener {  
 
 
}  
 
class deux extends Thread{  
 
}  
 
ben le problème , c'est que je veux que même la première classe hérite de Thread sachant que l'héritage multiple est interdit en java .

Reply

Marsh Posté le 01-06-2005 à 18:36:47   

Reply

Marsh Posté le 01-06-2005 à 18:40:32    

[:psychokwak]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 18:41:09    

Ton problème n'est pas là ou tu crois qu'il est [:ciler]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 18:51:06    

mais bien sur. C'est un petit peu là différence entre 'les développeurs du compilateur gèrent le problème pour toi, même si tu ne le rencontres pas' et 't'es bien dans le caca quand tu veux faire ton travail'
 
 
Dans ce cas là, Sun a inventé java.lang.Runnable pour se sortir de là.

Reply

Marsh Posté le 01-06-2005 à 18:54:35    

euh, vouloir faire qu'un JPanel soit un Thread, j'appelle pas ça faire son travail moi, vois-tu [:ma muse]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 19:36:30    

mais qu'est ce que vous êtes entrain de raconter bon sang ?  
 
je voudrais faire ça :
 
class une extends JFrame extends Thread {}
 
mais le problème c'est que l'héritage multiple n'est pas permis !!!!

Reply

Marsh Posté le 01-06-2005 à 19:44:25    

et moi je te dis que c'est pas ça le problème [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 19:53:29    

comment ça ? c'est pas ça le problème ?
mais c'est moi qui connait mon problème?
qu'est ce que t'es entrain de raconter ?

Reply

Marsh Posté le 01-06-2005 à 19:54:34    

On ne donne pas une pommade contre l'acnée à quelqu'un qui a la rougeole [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 01-06-2005 à 19:59:01    

la métaphore [:rofl]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 19:59:01   

Reply

Marsh Posté le 01-06-2005 à 19:59:06    

alors à votre avis , quel est le problème ?

Reply

Marsh Posté le 01-06-2005 à 20:01:01    

là:

Citation :

A Frame is a top-level window with a title and a border.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 20:22:10    

écoute , je crois que t'as pas bien compris mon problème  
lis stp bien ce que j'ai écrit

Reply

Marsh Posté le 01-06-2005 à 20:42:21    

faut donner la définition de Thread aussi :o

Reply

Marsh Posté le 01-06-2005 à 20:44:00    

zenodotnet a écrit :

écoute , je crois que t'as pas bien compris mon problème  


 
Si justement, et le problème n'est pas celui que tu crois.  
 
Qu'es-ce qu'une fenêtre ?


A Frame is a top-level window with a title and a border.


 
Qu'es-ce qu'un thread ?


A thread is a thread of execution in a program.  


 
Ta classe one, par l'héritage multiple, se retrouve être à la fois l'un et l'autre. Es-ce un réel concept de ton application, ou es-ce que tu te dirige vers cette solution pour unifier le tout dans une énorme classe qui fait tout ? L'affichage (JFrame) et le traitement (le thread) ?
 
La réponse à apporter est : c'est mal(tm). Mixer les deux ainsi abouti souvent à des plats de spaghettis inmintenables et indébuggables, et il faut séparer les deux. Ce concept de programmation, qui date quand même de la fin dees années soixantes, est la séparation des concerns, qui a abouti (entre autres) au pattern MVC (Modeèle / Vue / Controlleur), qui est la séparation des trois niveau d'une application.
 
Donc pour ton problème, il ne faut pas que tu utilise ce double extends (il y a des cas où ça sert, mais ce n'est pas pour ici, et dans ce cas, tu utilises de toutes façon d'autres technos). Tu dois avoir deux objets séparés (ta jframe, qui est l'affichage de ton traitement), et ton thread (qui est ton traitement en train de fonctionner). Ta vue doit voir ton traitement, et ton traitement doit notifier ceux qui le surveillent (on dit ses listeners) lorsqu'il a fait une avancé qui pourrait être affichée.  
 
Les avantages ? Demain, tu ne veux plus afficher ton traitement sur une JFrame, mais par un autre système (une page web, un afficher LCD sur ta tour, que sais-je), tu n'as pas a retoucher ton traitement.  
 
De plus, rien ne t'empêche d'afficher plusiuers fois la même information dans des contextes différents, avec un look différent.  En une ligne de code, tu peux rajouter une deusxième JFrame qui va afficher ton traitement en parralèle.
 
C'est pour cela qu'on te dit que tu te trompe de problème. L'héritage multiple aurait abouti à une mauvais design. Reprendre ton design de manière propre donnera un bien meilleur logiciel.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 01-06-2005 à 20:45:48    

zenodotnet: je pense que ce qu'ils veulent te dire , c qu'on ne melange pas les pommes et les poires
 
t'as un thread , t'as une JFrame, n'essaie pas de les combiner
 
je ce connais pas ton probleme, mais peut-etre qu'un "implements Runnable" devrait suffire ?

Reply

Marsh Posté le 01-06-2005 à 20:47:50    

Et en deux mots, si on traduit l'héritage par une relation "est un", je vois mal comment un objet XYZ pourrait à la fois "être une Fenetre" et "être un Thread". ("Truc est un four à pain et un bidon d'huile" )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-06-2005 à 23:30:15    

au fait, je vous ai déjà dit que swing c'est en inversion de dépendence de bout-en-bout ? [:dawa]
 
 
il faudrait vraiment que je l'écrive ce tuto ...
 
 
zenodotnet > une frame ne peut matériellement pas être gérée dans un thread que tu choisis, donc dès le départ c'est foireux ton truc, indépendament du troll sur l'héritage multiple.
 
je t'invite à consulter le tutorial swing sur les threads qui explique en détail les choses. (google -> tutorial+swing+threads )


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed