[HS] Java et heritage multiple [was: Re: [HS sur java] Comment voir plus rapidement les nouveaux prg dans SID ? ]
On 14 Aug 2003 15:55:50 +0200 Nicolas Rueff [EMAIL PROTECTED] wrote: Je propose: héritage multiple, certes peu souvent utilisé, mais c'est difficile de s'en passer quand on en a vraiment besoin. Je ne suis pas dev C++ donc n'hesitez pas a me corriger, mais d'apres ce que j'ai entendu, l'heritage multiple est plutot source de probleme que de facilite. Maintenant, les interfaces reglent plus ou moins le probleme, et surtout, on sait quelles seront les methodes qui seront utilisees! ;) Si tu veux que A herite de B ET C, tu crees une interface I (sachant que C implemente I), A herite de B et implemente I, tu encapsule C dans A et pour les methodes que tu dois surcharger, tu appelles les methodes de ton instance de C ;) Je pense qu'il y a aussi des cas en c++ ou les liens se font a l'execution, oui, dans ce cas, on est obliger de passer par un pattern Factory (heu une Fabrique), mais bon, c'est pas plus propre? ;) Je suis certain que j'oublie d'autres exemples que l'on ne pourrait pas faire en Java. N'hesitez pas ;) -- Arnaud Vandyck http://alioth.debian.org/users/arnaud-guest/ http://alioth.debian.org/developer/diary.php?diary_user=2781 pgpTnxkFsXw6Z.pgp Description: PGP signature
Re: [HS] Java et heritage multiple [was: Re: [HS sur java] Comment voir plus rapidement les nouveaux prg dans SID ? ]
On Thu, Aug 14, 2003 at 04:22:10PM +0200, Arnaud Vandyck wrote: On 14 Aug 2003 15:55:50 +0200 Nicolas Rueff [EMAIL PROTECTED] wrote: Je propose: héritage multiple, certes peu souvent utilisé, mais c'est difficile de s'en passer quand on en a vraiment besoin. Je ne suis pas dev C++ donc n'hesitez pas a me corriger, mais d'apres ce que j'ai entendu, l'heritage multiple est plutot source de probleme que de facilite. Maintenant, les interfaces reglent plus ou moins le probleme, et surtout, on sait quelles seront les methodes qui seront utilisees! ;) Si tu veux que A herite de B ET C, tu crees une interface I (sachant que C implemente I), A herite de B et implemente I, tu encapsule C dans A et pour les methodes que tu dois surcharger, tu appelles les methodes de ton instance de C ;) Je m'étais pourtant juré de ne pas participer au thread... Tant pis. Oui, effectivement, ça marche, mais c'est chiant, car il faut écrire les appels de délégation à la main. Là ou ça devient super lourd, c'est quand tu écris, par exemple, un serveur CORBA. En effet, la classe qui va implémenter l'interface définie en IDL doit étendre un classe de base qui s'occupe du marshalling. Et si jamais on a une interface A qui dérive d'une autre interface B, on ne peut pas faire de l'héritage d'implémentation de BImpl dans AImpl, car AImpl étend _AImplBase, et il faut utiliser une approche par délégation systématique. Ou écrire le serveur en C++. add item='huile' dest='feu' Moi, en général, je l'écris le serveur en python, comme ça j'ai les avantages de java et ceux de C++, sans en avoir les inconvénients. :o) OmniOrbPy rulez ! /add -- Alexandre Fayolle LOGILAB, Paris (France). http://www.logilab.com http://www.logilab.fr http://www.logilab.org Développement logiciel avancé - Intelligence Artificielle - Formations
Re: [HS] Java et heritage multiple [was: Re: [HS sur java] Comment voir plus rapidement les nouveaux prg dans SID ? ]
Le jeu 14/08/2003 à 17:42, Alexandre Fayolle a écrit : On Thu, Aug 14, 2003 at 04:22:10PM +0200, Arnaud Vandyck wrote: On 14 Aug 2003 15:55:50 +0200 Nicolas Rueff [EMAIL PROTECTED] wrote: Je propose: héritage multiple, certes peu souvent utilisé, mais c'est difficile de s'en passer quand on en a vraiment besoin. Je ne suis pas dev C++ donc n'hesitez pas a me corriger, mais d'apres ce que j'ai entendu, l'heritage multiple est plutot source de probleme que de facilite. Maintenant, les interfaces reglent plus ou moins le probleme, et surtout, on sait quelles seront les methodes qui seront utilisees! ;) Si tu veux que A herite de B ET C, tu crees une interface I (sachant que C implemente I), A herite de B et implemente I, tu encapsule C dans A et pour les methodes que tu dois surcharger, tu appelles les methodes de ton instance de C ;) Je m'étais pourtant juré de ne pas participer au thread... Tant pis. Oui, effectivement, ça marche, mais c'est chiant, car il faut écrire les appels de délégation à la main. Là ou ça devient super lourd, c'est quand tu écris, par exemple, un serveur CORBA. En effet, la classe qui va implémenter l'interface définie en IDL doit étendre un classe de base qui s'occupe du marshalling. Et si jamais on a une interface A qui dérive d'une autre interface B, on ne peut pas faire de l'héritage d'implémentation de BImpl dans AImpl, car AImpl étend _AImplBase, et il faut utiliser une approche par délégation systématique. Ou écrire le serveur en C++. C'est où je voulais en venir (yuk yuk, encore un tombé dans le thread). C'est souvent le cirque de java-iser en Corba (ou est-ce le contraire ?), et ayant appris la POO et corba en C++, j'ai eu pas mal de rustines à mettre lors de portage de différents projets Corba de C++ vers Java. add item='huile' dest='feu' Moi, en général, je l'écris le serveur en python, comme ça j'ai les avantages de java et ceux de C++, sans en avoir les inconvénients. :o) OmniOrbPy rulez ! /add add item='whitespirit' dest='feu' Tout le monde sait que rien n'est au dessus d'OCaml /add /N Alummer le feu (air connu) __ Nicolas Rueff [EMAIL PROTECTED] http://rueff.tuxfamily.org +33 6 77 64 44 80 -- BOFH excuse #406: Bad cafeteria food landed all the sysadmins in the hospital. __ signature.asc Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=
Re: [HS] Java et heritage multiple [was: Re: [HS sur java] Comment voir plus rapidement les nouveaux prg dans SID ? ]
Quoting Arnaud Vandyck [EMAIL PROTECTED]: On 14 Aug 2003 15:55:50 +0200 Nicolas Rueff [EMAIL PROTECTED] wrote: Je propose: héritage multiple, certes peu souvent utilisé, mais c'est difficile de s'en passer quand on en a vraiment besoin. Je ne suis pas dev C++ donc n'hesitez pas a me corriger, mais d'apres ce que j'ai entendu, l'heritage multiple est plutot source de probleme que de facilite. Maintenant, les interfaces reglent plus ou moins le probleme, et surtout, on sait quelles seront les methodes qui seront utilisees! ;) En matière d'héritage multiple, Eiffel s'en sort plutôt bien. Voir http://www.cetus-links.org et suivre les liens. Par contre, je suis d'accord sur le fait que ce ne soitpas indispensable, voir problèmatique dans certains cas. -- Jérôme Marant