Substituir Array por Objeto.
Você tem um array que contém vários tipos de dados.
Substitua o array por um objeto que terá campos separados para cada elemento.
##Example
String[] row = new String[2];
row[0] = "Liverpool";
row[1] = "15";Performance row = new Performance();
row.setName("Liverpool");
row.setWins("15");##Why Refactor
Arrays são uma excelente ferramenta para armazenar dados e coleções de um único tipo. Mas se você usar um array como caixas de correio, armazenando o nome de usuário na caixa 1 e o endereço do usuário na caixa 14, algum dia você ficará muito infeliz por ter feito isso. Essa abordagem leva a falhas catastróficas quando alguém coloca algo na “caixa” errada e também consome seu tempo para descobrir quais dados estão armazenados onde.
##Benefits
-
Na classe resultante, você pode colocar todos os comportamentos associados que antes estavam armazenados na classe principal ou em outro lugar.
-
Os campos de uma classe são muito mais fáceis de documentar do que os elementos de um array.
##How to Refactor
-
Crie a nova classe que conterá os dados do array. Coloque o próprio array na classe como um campo público.
-
Crie um campo para armazenar o objeto dessa classe na classe original. Não se esqueça de também criar o próprio objeto no local onde você inicializou o array de dados.
-
Na nova classe, crie métodos de acesso um a um para cada um dos elementos do array. Dê a eles nomes autoexplicativos que indiquem o que fazem. Ao mesmo tempo, substitua cada uso de um elemento do array no código principal pelo método de acesso correspondente.
-
Quando os métodos de acesso tiverem sido criados para todos os elementos, torne o array privado.
-
Para cada elemento do array, crie um campo privado na classe e, em seguida, altere os métodos de acesso para que usem esse campo em vez do array.
-
Quando todos os dados tiverem sido movidos, exclua o array.