it-swarm.com.de

Wie lautet die Namenskonvention für ein Getter/Setter für ein boolesches Feld?

Z.B.

boolean isCurrent = false;

Wie nennt man es Getter und Setter?

131
user496949

Angenommen, Sie haben 

boolean active;

Accessors Methode wäre

public boolean isActive(){return this.active;}

public void setActive(boolean active){this.active = active;}

Siehe auch

192
Jigar Joshi

http://geosoft.no/development/javastyle.html#Specific

  1. Das Präfix is sollte für boolesche Variablen und Methoden verwendet werden. 

    isSet, isVisible, isFinished, isFound, isOpen

Dies ist die Namenskonvention für boolesche Methoden und Variablen, die von .__ verwendet werden. Sun für die Java-Kernpakete. Mit dem Präfix "is" wird ein allgemeines .__ gelöst. Problem bei der Auswahl schlechter boolescher Namen wie Status oder Flagge. isStatus oder isFlag passt einfach nicht und das Der Programmierer muss mehr auswählen sinnvolle Namen. 

Setzermethoden für boolesche Variablen muss Präfix gesetzt haben in: 

void setFound(boolean isFound);

Es gibt einige Alternativen zu is Präfix, das besser in einige .__ passt. Situationen. Dies sind has, can und sollte Präfixe enthalten: 

boolean hasLicense(); 
boolean canEvaluate(); 
boolean shouldAbort = false;
65
Narayan

Für ein Feld mit dem Namen isCurrent lautet die korrekte Getter-/Setter-Benennung setCurrent()isCurrent() (so zumindest Eclipse meint), was sehr verwirrend ist und auf das Hauptproblem zurückgeführt werden kann:

Dein Feld sollte nicht an erster Stelle isCurrent heißen. _/Is ist ein Verb und Verben sind nicht geeignet, den Zustand eines Objekts darzustellen. Verwenden Sie stattdessen ein Adjektiv, und plötzlich ergeben Ihre Getter-/Setter-Namen mehr Sinn:

private boolean current;

public boolean isCurrent(){
    return current;
}

public void setCurrent(final boolean current){
    this.current = current;
}
55

Ich glaube es wäre:

void setCurrent(boolean current)
boolean isCurrent()
4
miku

Vielleicht ist es an der Zeit, diese Antwort zu überarbeiten? Persönlich würde ich für setActive() und unsetActive() stimmen (Alternativen können setUnActive(), notActive(), disable() usw. je nach Kontext sein), da "setActive" bedeutet, dass Sie es jederzeit aktivieren, was Sie jedoch nicht tun. Es ist eine Art Zähler, der intuitiv sagt, "setActive" zu sagen, aber tatsächlich den aktiven Zustand zu entfernen.

Ein anderes Problem ist, dass Sie ein SetActive-Ereignis nicht auf eine CQRS-Weise speziell abhören können. Sie müssen ein 'setActiveEvent' abhören und innerhalb des Listeners feststellen, ob der Listener aktiv ist oder nicht. Oder legen Sie natürlich fest, welches Ereignis beim Aufruf von setActive() aufgerufen werden soll. Dies widerspricht jedoch dem Prinzip der Trennung von Bedenken.

Eine gute Lektüre dazu ist der Artikel von FlagArgument von Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html

Ich komme jedoch aus einem PHP - Hintergrund und sehe, dass dieser Trend immer mehr angenommen wird. Nicht sicher, wie viel dies mit der Java-Entwicklung lebt.

3

Wie wär's mit:

// setter
public void beCurrent(boolean X) {
    this.isCurrent = X;
}

oder

// setter
public void makeCurrent(boolean X) {
    this.isCurrent = X;
}

Ich bin nicht sicher, ob diese Benennung für englische Muttersprachler sinnvoll ist.

0
amekusa
private boolean current;

public void setCurrent(boolean current){
    this.current=current;
}

public boolean hasCurrent(){
    return this.current;
}
0
Mkne