> -----Message d'origine-----
> De : Laurent Martelli [mailto:[EMAIL PROTECTED]]
> Envoyé : jeudi 5 décembre 2002 16:45
> À : [EMAIL PROTECTED]
> Objet : Re: Du changement dans le langage
>
>
> >>>>> "Pierre-Yves" == Pierre-Yves Varoux
> <[EMAIL PROTECTED]> writes:
>
>   >> import static (pour faire comme si il y avait des globales) Le
>   >> import static je sais pas ce que s'est ; m'est avis qu'on
>   >> s'éloigne franchement de la POO...
>
>   Pierre-Yves> En effet, de réaliser un import statique c'est un peu
>   Pierre-Yves> déverser le contenu d'une classe dans une autre... Dans
>   Pierre-Yves> ce cas que devient l'encapsulation ?
>
> Je ne vois pas le rapport avec l'encapsulation. L'import ne te donne
> pas accès à plus de choses.


Si tu fais un import static de Math.*, tu vas par exemple utiliser la
méthode abs() comme s'il s'agissait d'une méthode de la classe
utilisatrice... c'est pour cela que j'ai écris que "l'on déverse un peu le
contenu d'une classe dans une autre", et que par conséquent le concept
d'"encapsulation" devient moins fort d'une certaine manière (je ne pensais
pas du tout au fait que l'on puisse accéder à des attributs ou des méthodes
protected ou private).

Autre inconvénient, on peut imaginer que si ta classe possède une méthode
abs(), il va bien falloir que tu écrives this.abs() pour éviter la confusion
avec Math.abs().


La lisibilité du code risque aussi d'en prendre un coup :
 -> si on a plusieurs imports statiques, la méthode abs() appartient soit à
la classe, soit à l'une ou l'autre des classes statiques importées... il va
falloir chercher pour savoir.


> Ca permet juste d'économiser l'écriture du nom
> de la classe.
> C'est comme de ne pas avoir à se taper le nom du
> package de chaque classe à chaque fois.

La remarque est intéressante ...


Ma conclusion :
L'idée de ce concept semble bonne si l'on importe statiquement des classes
"classiques" de la JFC (Math ou Color par exemple, dont on connait à peu
près les noms de méthodes et d'attributs), mais si l'on fait de même avec
des packages autres ou propiétaires, alors le code risque vraiment de
devenir illisible.


Pierre-Yves
http://www.add-online.fr

Répondre à