Pour l'absence de parenthèses lors d'appels de méthodes sans arguments, on m'avait vendu que cela permettait de passer facilement d'un champ a une méthode et vice versa sans changer le code. A la réflexion, vu que l'on ne doit pas accéder aux champs de toute manière, je ne vois pas bien l’intérêt. Si quelqu'un peut me l'expliquer?
Alors, je vois plusieurs cas où ça peut aider.
Tu accèdes à tes champs depuis une classe dérivée/amie/etc. (par exemple si tes champs/attributs sont déclarés protected1).
Il y a des fois où tu veux vraiment que l'attribut soit public (une constante, ou bêtement une classe qui sert plus de « structure » qu'autre chose)
Pour aller un peu plus loin sur le point précédent: si au final, il y a « insertion en ligne » (inlining) des accesseurs, il est plus simple d'avoir un champ qui dit toto.a plutôt qu'avoir à coder un lourd toto.getA2, surtout si le résultat est le même est que l'encapsulation est préservée.
[1] Je sais que certains prêchent le « private ou public, mais pas de visibilité intermédiaire » (par exemple Scott Meyer dans Effective C++). Comme toutes les bonnes pratiques (par exemple pour un goto), c'est vrai en général. Et parfois, dans un cas particulier, suivre aveuglément ces bonnes pratiques casse plus les pieds qu'autre chose, pour un résultat pas forcément super impressionnant.
[2] Oui je sais, tout IDE digne de ce nom peut générer les accesseurs. Mais faut quand même taper les getA/setA ensuite. Bref.
[^] # Re: mouais
Posté par lasher . En réponse à la dépêche Découvrir Xtend, un langage extension de Java. Évalué à 3.
Alors, je vois plusieurs cas où ça peut aider.
protected1).toto.aplutôt qu'avoir à coder un lourdtoto.getA2, surtout si le résultat est le même est que l'encapsulation est préservée.[1] Je sais que certains prêchent le «
privateoupublic, mais pas de visibilité intermédiaire » (par exemple Scott Meyer dans Effective C++). Comme toutes les bonnes pratiques (par exemple pour ungoto), c'est vrai en général. Et parfois, dans un cas particulier, suivre aveuglément ces bonnes pratiques casse plus les pieds qu'autre chose, pour un résultat pas forcément super impressionnant.[2] Oui je sais, tout IDE digne de ce nom peut générer les accesseurs. Mais faut quand même taper les
getA/setAensuite. Bref.