Existe uma prática recomendada para a ordem de definição de getters e setters? Parece haver duas práticas:
- pares getter / setter
- primeiros getters, depois setters (ou vice-versa)
Para esclarecer a diferença, aqui está um exemplo de Java de pares getter / setter:
public class Foo {
private int var1,
var2,
var3;
public int getVar1() {
return var1;
}
public void setVar1(int var1) {
this.var1 = var1;
}
public int getVar2() {
return var2;
}
public void setVar2(int var2) {
this.var2 = var2;
}
public int getVar3() {
return var3;
}
public void setVar3(int var3) {
this.var3 = var3;
}
}
E aqui está um exemplo de Java de primeiros getters, depois setters:
public class Foo {
private int var1,
var2,
var3;
public int getVar1() {
return var1;
}
public int getVar2() {
return var2;
}
public int getVar3() {
return var3;
}
public void setVar1(int var1) {
this.var1 = var1;
}
public void setVar2(int var2) {
this.var2 = var2;
}
public void setVar3(int var3) {
this.var3 = var3;
}
}
Acho que o último tipo de pedido é mais claro nos diagramas de código e de classe, mas não sei se isso é suficiente para descartar o outro tipo de pedido.
Se você estiver em uma equipe, faça o que eles costumam fazer. Caso contrário, basta escolher o que você mais gosta. Na escala de opções importantes de design, isso provavelmente está próximo de "qual polegar devo usar para pressionar a barra de espaço?"
fonte
Também pode depender do idioma. Em Java, não há nenhuma vantagem real para qualquer pedido, mas em C #, por exemplo, você tem o conceito de "propriedades", que agrupam o getter e o setter, de modo que isso impõe esse pedido. Em uma linguagem como C ++, em que você pode querer visibilidade diferente entre getters e setters (por exemplo, private setter, public getter), provavelmente faria o contrário, já que o modificador de visibilidade é fornecido uma vez para vários métodos, e não individualmente para cada .
fonte
Até onde eu sei, não existe uma única convenção. A seção Convenções de código do Oracle Java sobre organização de arquivos não menciona explicitamente o posicionamento de getters e setters, mas diz:
Isso não fornece nenhuma orientação - eu poderia argumentar que qualquer canal atende a esse critério.
Algo a considerar é que os IDEs modernos permitem que você tenha visões mais abstratas da estrutura de seus arquivos do que como o componente de código textual. Juntamente com poderosas ferramentas de pesquisa, deve ser fácil navegar pelos arquivos e encontrar os métodos apropriados em arquivos grandes.
Como exemplo, o Eclipse fornece uma visualização de estrutura de tópicos que permite classificar e filtrar métodos e campos de maneiras diferentes e navegar até onde eles estão nos arquivos. O NetBeans tinha funcionalidade semelhante, e eu suspeito que a maioria dos outros IDEs também.
A única vez que isso pode importar é se você estiver lendo o código fora do seu IDE. Um exemplo pode estar usando uma ferramenta de revisão de código externa ou visualizando deltas do seu sistema de controle de versão.
A melhor solução seria simplesmente ser consistente entre os arquivos em um projeto. Encontre um padrão, documente-o e cumpra-o.
fonte
Agrupe o getter e o setter para um único campo juntos, em pares.
O agrupamento de todos os getters e todos os setters torna difícil dizer quais campos têm apenas getters ou apenas setters.
Quando estou lendo um código ou procurando uma funcionalidade específica, imagino uma classe como tendo campos, com cada campo tendo um getter e um setter. Não faz sentido para mim que uma classe tenha um grupo getters e um grupo setters, cada um com campos.
fonte
Já o Java IDE pode gerar getters e setters para você. Basta usar essa funcionalidade e deixar a ordem desses métodos, como o IDE a criou. Este é um código gerado, não o toque desnecessariamente.
fonte