Par exemple.
boolean isCurrent = false;
Comment appelez-vous son getter et setter?
Supposons que vous ayez
boolean active;
La méthode des accesseurs serait
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Voir également
http://geosoft.no/development/javastyle.html#Specific
Le préfixe
is
devrait être utilisé pour les variables et méthodes booléennes.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Ceci est la convention de nommage pour méthodes et variables booléennes utilisées par Sun pour les packages principaux Java. L'utilisation du préfixe is résout un problème commun problème de choix de mauvais noms booléens comme statut ou drapeau. isStatus ou isFlag ne convient tout simplement pas, et le le programmeur est obligé de choisir plus noms significatifs.
Méthodes Setter pour les variables booléennes doit avoir défini le préfixe comme dans:
void setFound(boolean isFound);
Il existe quelques alternatives à la is préfixe qui convient mieux à certains des situations. Ce sont a, peuvent et les préfixes devraient-ils:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
Pour un champ nommé isCurrent
, le nom correct du getter/setter est setCurrent()
isCurrent()
(du moins c'est ce que pense Eclipse), ce qui est très déroutant et permet de remonter au problème principal:
Votre champ ne devrait pas s'appeler isCurrent
en premier lieu. _/Is est un verbe et les verbes sont inappropriés pour représenter l'état d'un objet. Utilisez un adjectif à la place, et tout à coup vos noms de getter/setter auront plus de sens:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
Je crois ce serait:
void setCurrent(boolean current)
boolean isCurrent()
Peut-être qu'il est temps de commencer à réviser cette réponse? Personnellement, je voterais pour setActive()
et unsetActive()
(les alternatives peuvent être setUnActive()
, notActive()
, disable()
, etc. selon le contexte) car "setActive" implique que vous l'activiez à tout moment, ce que vous ne faites pas. C'est un peu contre-intuitif de dire "setActive" mais de supprimer l'état actif.
Un autre problème est que vous ne pouvez pas écouter spécifiquement un événement SetActive d'une manière CQRS, vous devez écouter un 'setActiveEvent' et déterminer à l'intérieur de cet écouteur si le paramètre est réellement actif ou non. Ou bien sûr, déterminez quel événement appeler lorsque vous appelez setActive()
, mais cela va alors à l'encontre du principe de séparation des problèmes.
L'article sur FlagArgument de Martin Fowler est une bonne lecture: http://martinfowler.com/bliki/FlagArgument.html
Cependant, je viens de PHP et je vois de plus en plus cette tendance. Je ne sais pas combien cela vit avec le développement Java.
En tant que passeur, que diriez-vous de:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
ou
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Je ne sais pas si ces noms ont du sens pour les anglophones.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}