Замена поля-массива объектом
Этот рефакторинг является особым случаем замены простого поля объектом.
Проблема
У вас есть массив, в котором хранятся разнотипные данные.
Решение
Замените массив объектом, который будет иметь отдельные поля для каждого элемента.
String[] row = new String[2];
row[0] = "Liverpool";
row[1] = "15";
                                    Performance row = new Performance();
row.setName("Liverpool");
row.setWins("15");
                                    string[] row = new string[2];
row[0] = "Liverpool";
row[1] = "15";
                                    Performance row = new Performance();
row.SetName("Liverpool");
row.SetWins("15");
                                    $row = [];
$row[0] = "Liverpool";
$row[1] = 15;
                                    $row = new Performance;
$row->setName("Liverpool");
$row->setWins(15);
                                    row = [None * 2]
row[0] = "Liverpool"
row[1] = "15"
                                    row = Performance()
row.setName("Liverpool")
row.setWins("15")
                                    let row = new Array(2);
row[0] = "Liverpool";
row[1] = "15";
                                    let row = new Performance();
row.setName("Liverpool");
row.setWins("15");
                                    Причины рефакторинга
Массивы — отличный инструмент для хранения однотипных данных и коллекций. Но ждите беды, если вы используете массив в качестве банковских ячеек, например, храните в ячейке №1 — имя пользователя, а в ячейке №14 — его адрес. Такой подход не только может привести к фатальным последствиям, когда кто-то положит что-то не в ту ячейку, но также требует затраты огромного количества времени на запоминание того, где какие данные хранятся.
Достоинства
- 
В образовавшийся класс можно переместить все связанные поведения, которые раньше хранились в основном классе или в других местах. 
- 
Поля класса гораздо проще документировать, чем ячейки массива. 
Порядок рефакторинга
- 
Создайте новый класс, который будет содержать данные из массива. Поместите в него сам массив как публичное поле. 
- 
Создайте поле для хранения объекта этого класса в исходном классе. Не забудьте создать также сам объект в том месте, где вы инициировали массив данных. 
- 
В новом классе один за другим создавайте методы доступа для всех элементов массива. Давайте им понятные названия, которые отражают суть того, что они хранят. В тоже время изменяйте каждый случай использования ячейки массива в основном коде соответствующими методами доступа к этой ячейке. 
- 
Когда методы доступа будут созданы для всех ячеек, сделайте массив приватным. 
- 
Для каждого элемента массива создайте приватное поле в классе, после чего измените методы доступа так, чтобы они использовали это поле вместо массива. 
- 
Когда все данные будут перемещены, удалите массив.