Olá

Acrescentando e removendo parâmetros, todo desenvolvedor já precisou algum dia fazer essa alteração no código-fonte, esse é o tipo de refatoração mais comum na nossa vida.

Pode parecer simples quando o projeto é pequeno e pouco reaproveitado, mas precisamos ter muito cuidado ao fazer isso em grandes projetos cujo método é altamente reusado para não correr o risco de tomar um NoSuchMethodException em produção.

O procedimento é parecido para os dois tipos de refatoração.

1.       Crie um novo método com o novo parâmetro (ou sem o parâmetro se estiver removendo). Geralmente é um Ctrl+C e Ctrl+V do método existente apenas alterando a lista de parâmetros.

2.       Agora você deve copiar o corpo do método existente para o método novo.

3.       No método que já existia efetue a chamada do método novo. No caso de acréscimo de parâmetro você terá que passar um valor padrão para o parâmetro novo, eu geralmente uso null.

4.       Altere os demais códigos para que chame o método novo. Tente procurar pelo máximo de referencias.

5.       Execute o aplicativo e teste.

6.       Você pode apagar o método antigo, mas se isso não for possível por que o método faz parte de uma facade (interface) mantenha-o e coloque um @deprecated no javadoc dele.

Se precisar alterar o método com mais de um parâmetro, o ideal é fazer tudo de uma vez só para evitar retrabalho depois.

Muitos não têm o costume de retirar parâmetros, mesmo que não sejam mais usados. Eles mantêm o parâmetro boiando (inclusive eu 😀 ) com a premissa de que não vai dar problema no comportamento do método, nisso temos razão, mas com certeza dará problema no seu entendimento ou no do pobre coitado alguns dias depois quando for dar manutenção.

Até mais,

Share


Sem comentários

  1. #
    Putz
    setembro 30th, 2010 at 17:49

    Vc me manda passar um parâmetro como null e ainda tem a cara de pau de colocar o título de “Boas práticas”????

    Responda a esse comentário
    • #
      Roberto Furutani
      setembro 30th, 2010 at 18:31

      O null seria o valor padrão para a novo parâmetro, que não existia até o momento. Se você preferir pode adotar outro valor, fica a seu critério.

      Responda a esse comentário

Deixe um comentário