Adicionar Parâmetro.
Um método não tem dados suficientes para realizar certas ações.
Crie um novo parâmetro para passar os dados necessários.
##Exemplo
void charge() {
bank.transfer(amount);
}void charge(Date asOf) {
bank.transfer(amount, asOf);
}##Por que refatorar
Você precisa fazer alterações em um método e essas alterações exigem adicionar informações ou dados que antes não estavam disponíveis para o método.
A alternativa é adicionar um novo campo privado que contenha os dados de que o método precisa. Um parâmetro é preferível quando os dados são necessários apenas ocasionalmente ou mudam com frequência, de modo que não faz sentido mantê-los no objeto o tempo todo. Caso contrário, adicione um campo privado e preencha-o com os dados necessários antes de chamar o método.
##Benefícios
-
O método recebe explicitamente de quem o chama os dados de que precisa: a dependência fica visível na sua assinatura, em vez de ficar escondida no estado do objeto.
-
Dados ocasionais ou que mudam com frequência não precisam ficar guardados no objeto o tempo todo, então a classe não acumula campos que só servem para uma única chamada.
##Como refatorar
-
Verifique se o método está definido em uma superclasse ou subclasse. Se o método estiver presente nelas, você precisará repetir todos os passos nessas classes também.
-
O passo a seguir é fundamental para manter seu programa funcional durante o processo de refatoração. Crie um novo método copiando o antigo e adicione a ele o parâmetro necessário. Substitua o código do método antigo por uma chamada ao novo método. Você pode atribuir qualquer valor ao novo parâmetro (como
nullpara objetos ou zero para números). -
Encontre todas as referências ao método antigo e substitua-as por referências ao novo método.
-
Exclua o método antigo. A exclusão não é possível se o método antigo fizer parte da interface pública. Nesse caso, marque o método antigo como obsoleto (deprecated).