Le 4 Apr 2002 Cedric Beust a �crit :

> 
> Certes, mais est-ce un bon argument ?  Apres tout, tu peux dire la
> meme chose de :
> 
> obj.foo();
> 
> Qui peut dire si foo() est invoque sur la classe de declaration de obj
> ou une sous-classe ?
> 

Oui oui oui, je parlais au niveau applicatif, je suis bien d'accord 
que au niveau d'un module particulier il faut utiliser les 
"abstractions".

A propos d'une appli, je veux dire que lorsque tu assembles les 
diff�rents modules entre eux, � ce moment l� tu veux pouvoir 
controler quels composants tu utilises. Si le client dit "Utilisez 
Xalan", c'est pas le parser Oracle qui doit �tre utilis�, m�me si au 
final tes modules ne voient que des org.w3c.dom.xx.

Tu vas donc �crire quelques classes de lancement et d'assemblage de 
ton appli. Puis tu vas activer tes modules en utilisant toutes les 
classes et sous classes que tu voudras : tes modules ne verront que 
des abstractions.

Si dans ces classes d'assemblage tu fais des new Toto(), la situation 
est tr�s claire : tu utilises la classe Toto.

Mais si tu fais des Factory.getToto(), alors il faut que tu ailles 
piocher dans la doc de ta Factory pour savoir par quel processus 
obscur cette Factory te cr�e ton objet, pour pouvoir le controler. Et 
dans le cas des parsers XML, cela peut �tre par une propri�t� 
syst�me, � moins que la feature untel soit lev�e, � moins que le 
classpath ne soit pas dans tel ordre, � moins qu'il y ait pas une 
option ceci... �a me gonfle. 


--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com

Répondre à