8
votes

`nom ()` vs. Convention de nommage () `Naming?

J'ai vu certains projets (JSOUP par exemple) utilise cette nouvelle convention de dénomination de getter / Setter: xxx pré>

au lieu de la convétion d'Old Getter / Setter: P>

String getName()
void   setName(String value)


2 commentaires

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 (); lit bien, mais obj.name ("nouveau nom"); n'est pas aussi évident ( vs. code> obj.setname ("nouveau nom") ).


5 Réponses :


3
votes

Rien sauf la lisibilité et le style API.

Certaines API acceptent ce style et certains ne le font pas, comme ressort injections et jsf ne peuvent pas reconnaître cette syntaxe (elles nécessitent explicitement obtenir / définir pour les propriétés).


1 commentaires

"Style API": Étant donné que le printemps, JSF (et JPA), etc. sont si largement utilisés dans la pratique, c'est une grosse "sauf".



9
votes

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 $ {objet.name} , qui est traduit par objet.getname () . Cela échouera si vous ne suivez pas les conventions de nommage (bien qu'il existe des moyens de le contourner).

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.


0 commentaires

3
votes

J'aime simplement utiliser Nom () lorsque l'objet que je gree est immuable, c'est-à-dire que je ne changerais jamais la valeur du champ nom . 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é.


1 commentaires

Je fais quelque chose de similaire avec des classes immuables parfois - je vais faire le champ final public au lieu de la peine d'écrire un accesseur du tout.



1
votes

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.

En cas de doute, j'utiliserais le style Javabean.


0 commentaires

2
votes

Je préfère toujours utiliser verbes pour nom de méthodes, il est donc valide aussi pour les getters and Setters.

J'utilise noms uniquement pour variables .

Suivez Standard JavaBean classique Faites-moi me sentir plus à l'aise. :)


0 commentaires