Dovrei evitare di usare getX()
e setX()
come nomi per metodi che non sono getter o setter "tradizionali"? (Definiamo tradizionale in quanto solo ottiene / imposta il campo e non ha altri effetti.) Suppongo che la domanda sia: un metodo chiamato così implica che è un campo dell'oggetto? Inoltre, è una cattiva pratica fare altre cose in loro?
class Foo {
private Object bar;
private Object bazz;
// "traditional"
public Object getBar() {
return bar;
}
// bad practice?
public Object getBazz() {
doSomeOtherThing();
return bazz;
}
// not a field
public Object getJazz() {
return makeSomeJazz();
}
// ...
}
Se getX()
non è appropriato se non è un campo, che cos'è? (Probabilmente troppo ampio, mi rendo conto.) Ovviamente qualcosa come makeJazz()
è probabilmente meglio di getJazz()
se getJazz()
è considerato negativo qui.
Suppongo che un'altra domanda sia davvero importante? Mi piace l'idea del "codice di auto-documentazione", ma forse mi preoccupo troppo di qualcosa di secondario.