On Thu, 14 Aug 2003 17:42:45 +0200 Alexandre Fayolle <Alexandre.Fayolle@logilab.fr> wrote: [...] > 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++. Je ne comprends pas bien. Si ton interface A dérive (hérite?) d'une autre interface B, la classe qui implémente A doit automatiquement implémenter B! Maintenant, si tu as 2 interfaces qui n'ont pas de liens d'héritage, tu peux de toutes manières créer une classe qui étends ta classe de marshaling ET qui implémente les deux interfaces!.. et cette classe qui fait tous les bindings nécessaires peut être abstraite! Ce qui te permet d'étendre UNE classe qui s'occupe de tout le boulot... Mais bon, je n'ai peut-être pas bien compris. Je suppose que si l'héritage multiple existe, c'est qu'il y a des cas où il n'est pas possible de faire autrement. ;) > <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> J'ai entendu parler de Python et ça a l'air très intéressant. J'ai un collègue qui prépare un cours de quelques jours (introduction). Il n'était pas trop convaincu au départ (l'histoire de l'indentation, pas de méthode privée, etc.), mais il a l'air de dire que c'est pas mal du tout... mais bon, on est en vacances, peut-être qu'à son retour, il va dire que c'est génial! ;) -- Arnaud Vandyck http://alioth.debian.org/users/arnaud-guest/ http://alioth.debian.org/developer/diary.php?diary_user=2781
Attachment:
pgpKjKaAG9eBc.pgp
Description: PGP signature