[HS] Java et heritage multiple [was: Re: [HS sur java] Comment voir plus rapidement les nouveaux prg dans SID ? ]

2003-08-14 Par sujet Arnaud Vandyck
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 ? ]

2003-08-14 Par sujet Alexandre Fayolle
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 ? ]

2003-08-14 Par sujet Nicolas Rueff
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 ? ]

2003-08-14 Par sujet Jérôme Marant
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