J'ai vu certains projets (JSOUP par exemple) utilise cette nouvelle convention de dénomination de getter / Setter: au lieu de la convétion d'Old Getter / Setter: P> String getName()
void setName(String value)
5 Réponses :
Rien sauf la lisibilité et le style API. p>
Certaines API acceptent ce style et certains ne le font pas, comme ressort code>
injections code> et
jsf code> ne peuvent pas reconnaître cette syntaxe (elles nécessitent explicitement obtenir / définir pour les propriétés). p>
"Style API": Étant donné que le printemps, JSF (et JPA), etc. sont si largement utilisés dans la pratique, c'est une grosse "sauf".
Le premier exemple ne respecte pas le Spécification JavaBeans [AVERTISSEMENT PDF]. Il existe certains cadres tels que le printemps, supposant cette convention de dénomination, surtout lorsque vous faites quelque chose dans el comme Sans entrer dans une discussion sur quand / si pour utiliser des getters / setters, il vaut mieux rester avec la convention de dénomination car il y a moins de surprises de cette façon, surtout lorsque vous vous intégrez avec des bibliothèques ou des cadres tiers que Attendez-vous à ce que les choses soient nommées selon la convention. P> $ {objet.name} code>, qui est traduit par
objet.getname () code >. Cela échouera si vous ne suivez pas les conventions de nommage (bien qu'il existe des moyens de le contourner). P>
J'aime simplement utiliser Nom () code> lorsque l'objet que je gree est immuable, c'est-à-dire que je ne changerais jamais la valeur du champ code> nom code>. Lorsque je traite d'un objet mutable, j'utiliserais la deuxième convention que vous avez mentionnée, simplement parce que je pense qu'il est supérieur en termes de lisibilité. P>
Je fais quelque chose de similaire avec des classes immuables parfois - je vais faire le champ final public code> au lieu de la peine d'écrire un accesseur du tout.
Je préfère utiliser le style plus court si la bibliothèque est faible et que je veux préciser ce composant n'est pas un javaBean. P>
En cas de doute, j'utiliserais le style Javabean. P>
Je préfère toujours utiliser verbes em> pour nom de méthodes, il est donc valide aussi pour les getters and Setters. P>
J'utilise noms em> uniquement pour variables em>. p>
Suivez Standard JavaBean classique Faites-moi me sentir plus à l'aise. :) p>
La première méthode ne respecte pas la spécification JavaBeans, de sorte que vous ne pourrez pas l'utiliser à certains endroits. Par exemple, vous aurez besoin de getters et de configuriseurs réels pour travailler avec des haricots gérés dans JSF.
En dehors de l'aspect haricots, je pense
string s = obj.name (); code> lit bien, mais
obj.name ("nouveau nom"); code> n'est pas aussi évident ( vs. code> obj.setname ("nouveau nom") code>).