Accueil de l'archive Service proposé par Hervé AGNOUX

Date sent:      	Tue, 25 Jan 2000 19:22:27 +0100
From:           	Guillaume Desnoix <guillaume-desnoix@memoire.com>
To:             	_Pause Java <java@u-strasbg.fr>
Subject:        	Abus d'interfaces
Send reply to:  	java@u-strasbg.fr

Cedric Beust wrote:
> Sur un plan plus general, je remarque une tendance prononcee a abuser
> des interfaces en Java. Beaucoup de developpeurs ne sont pas conscients
> des limitations et utilisent des interfaces ou` des classes abstraites
> auraient beaucoup plus de sens (et seraient plus faciles a faire
> evoluer).

Je ne pense pas qu'il y ait abus, en tout cas dans les API. Une
interface est plus souple et plus evolutive qu'une classe abstraite.
Inversement, une classe de base (abstraite ou non) est plus facile a
maintenir et a coder. Je pense que c'est une evolution positive _et_
necessaire pour reellement permettre l'ecriture de logiciels evolutifs
et/ou distribues.

> Mais c'est un autre debat :-)

Oui.

Guillaume

     

From:           	cedric.beust@beasys.com (Cedric Beust)
To:             	<java@u-strasbg.fr>
Subject:        	RE: Abus d'interfaces
Date sent:      	Tue, 25 Jan 2000 12:44:58 -0800
Send reply to:  	java@u-strasbg.fr

> From: desnoix@isis.u-strasbg.fr [mailto:desnoix@isis.u-strasbg.fr]On
> Behalf Of Guillaume Desnoix

> Je ne pense pas qu'il y ait abus, en tout cas dans les API. Une
> interface est plus souple et plus evolutive qu'une classe abstraite.

Quels sont tes criteres pour definir souplesse et evolutivite ?

Le fait que le simple ajout d'une methode dans une interface fasse casser
tout le code qui l'implemente n'est pas un modele de souplesse. Et encore
moins d'evolutivite...

--
Cedric
http://beust.com/cedric

     

Date sent:      	Thu, 27 Jan 2000 19:05:13 +0100
From:           	Guillaume Desnoix <guillaume-desnoix@memoire.com>
To:             	java@u-strasbg.fr
Subject:        	Re: Abus d'interfaces
Send reply to:  	java@u-strasbg.fr


> > Je ne pense pas qu'il y ait abus, en tout cas dans les API. Une
> > interface est plus souple et plus evolutive qu'une classe abstraite.

Cedric Beust wrote:
> Quels sont tes criteres pour definir souplesse et evolutivite ?
> Le fait que le simple ajout d'une methode dans une interface fasse
> casser tout le code qui l'implemente n'est pas un modele de souplesse.
> Et encore moins d'evolutivite...

Si. Si tu rajoutes une methode a une interface, les objets implementant
cette interface vont etre tentes de l'utiliser, voir en dependre. D'autre
part, les interfaces et les classes devraient (dans les gros projets) etre
concues par des developpeurs differents. Enfin ca pose des problemes de
passage a d'autres langages ou a d'autres architectures comme CORBA. Si
ton interface contient du code, elle ne peut plus etre mappe sur
l'interface CORBA correspondante par exemple.

Guillaume.

     

From:           	cedric.beust@beasys.com (Cedric Beust)
To:             	<java@u-strasbg.fr>
Subject:        	RE: Abus d'interfaces
Date sent:      	Thu, 27 Jan 2000 10:06:40 -0800
Send reply to:  	java@u-strasbg.fr

> From: desnoix@isis.u-strasbg.fr [mailto:desnoix@isis.u-strasbg.fr]On
> Behalf Of Guillaume Desnoix

> > > Je ne pense pas qu'il y ait abus, en tout cas dans les API. Une
> > > interface est plus souple et plus evolutive qu'une classe abstraite.
>
> Cedric Beust wrote:
> > Quels sont tes criteres pour definir souplesse et evolutivite ?
> > Le fait que le simple ajout d'une methode dans une interface
> fasse casser tout
> > le code qui l'implemente n'est pas un modele de souplesse. Et encore
> > moins d'evolutivite...
>
> Si. Si tu rajoutes une methode a une interface, les objets implementant
> cette interface vont etre tentes de l'utiliser, voir en dependre.

C'est pire que ca : ils vont etre *obliges* de l'implementer, sinon le
code ne compile plus.

Tres souvent, l'utilisation d'une classe abstraite est un meilleur choix
qu'une interface.

--
Cedric
http://beust.com/cedric


C'est fini ! Retour à l'accueil de la pseudo-archive