Remover Método de Atribuição.
Problema
O valor de um campo deve ser definido apenas no momento de sua criação e não deve mudar em nenhum momento depois disso.
Solução
Portanto, remova os métodos que definem o valor do campo.
##Exemplo
Antes
class Account {
private String id;
Account(String id) {
setId(id);
}
void setId(String arg) {
id = arg;
}
}Depois
class Account {
private final String id;
Account(String id) {
this.id = id;
}
}##Por que refatorar
Você quer impedir qualquer alteração no valor de um campo.
##Como refatorar
-
O valor de um campo deve poder ser alterado apenas no construtor. Se o construtor não contiver um parâmetro para definir o valor, adicione um.
-
Encontre todas as chamadas ao setter.
-
Se uma chamada ao setter estiver localizada logo após uma chamada ao construtor da classe atual, mova seu argumento para a chamada do construtor e remova o setter.
-
Substitua as chamadas ao setter no construtor por acesso direto ao campo.
-
-
Exclua o setter.