Convenzione di denominazione di getter e setter [chiusa]

-2

Data una variabile di stringa variable , ad esempio, la convenzione per esporla è:

public class SomeClass {

public String variable = "";
public String getVariable() {return variable;}
public void setVariable(String variable) {this.variable = variable;}

}

Che assomiglia a:

class.getVariable(); // Gets "variable"

class.setVariable("Hello"); // Sets "variable"

La seguente convenzione è considerata in cattivo stile? :

public class SomeClass {

public String variable = "";
public String variable() {return variable;}
public void variable(String variable) {this.variable = variable;}

}

Che assomiglia a:

class.variable(); // Gets "variable"

class.variable("Hello"); // Sets "variable"

Tieni presente che il modello di design stabilito dell'interfaccia fluente sembra suggerire che si creino oggetti usando qualcosa come:

public class SomeClass {

public String variable = "";

public SomeClass(String variable) {this.variable = variable;}

public String variable() {return variable;}
public SomeClass variable(String variable) {return SomeClass(variable);}

}

Che assomiglia a:

SomeClass sc = new SomeClass().variable("Hello"); // Instantiates a new SomeClass object with variable equal to "Hello".

Evidentemente, la parola "set" è implicita nel modello fluent interface . (Sì, tecnicamente, l'interfaccia fluente restituisce la classe invece di nulla durante l'impostazione. Questo non è importante.)

    
posta user241221 02.02.2014 - 12:42
fonte

1 risposta

2

Il primo è fine getXXX , setXXX Il secondo non funzionerà in quanto non è possibile avere tre membri tutti con lo stesso nome.

Come menzionato nei commenti tutto dipende dalla lingua. Attenersi alla guida di stile generale della lingua, se esiste.

AFAIK in

  • Java hai get_ / set_ prefisso mentre il campo che memorizza il valore è privato.

  • in C # usi maiuscolo Xxx per getter e setter e xxx per il campo di supporto (se ne hai)

  • in Go hai Xxx per getter e SetXxx per setter. Il campo di supporto è denominato xxx perché il carattere minuscolo lo rende privato.

  • in Dart devi usare _ per indicare che un campo è privato, questo genera xxx per getter e setter e _xxx per il campo di supporto.

Queste sono solo le poche lingue che ho usato di recente e hanno tutte diverse convenzioni.

    
risposta data 02.02.2014 - 13:46
fonte

Leggi altre domande sui tag