Инкапсуляция поля.
У вас есть публичное поле.
Сделайте поле приватным и создайте для него методы доступа.
##Example
class Person {
public String name;
}class Person {
private String name;
public String getName() {
return name;
}
public void setName(String arg) {
name = arg;
}
}##Why Refactor
Одним из столпов объектного программирования является Инкапсуляция или возможность сокрытия данных объекта. Иначе все данные объектов были бы публичными, и другие объекты могли бы получать и модифицировать данные вашего объекта без его ведома. При этом отделяются данные от поведений, связанных с этими данными, ухудшается модульность частей программы и усложняется её поддержка.
##Benefits
-
Если данные и поведения какого-то компонента тесно связанны между собой и находятся в одном месте в коде, вам гораздо проще поддерживать и развивать этот компонент.
-
Кроме того, вы можете производить какие-то сложные операции, связанные с доступом к полям объекта.
##How to Refactor
-
Создайте геттер и сеттер для поля.
-
Найдите все обращения к полю. Замените получение значения из поля геттером, а установку новых значений в поле — сеттером.
-
После того как все обращения к полям заменены, сделайте поле приватным.
Последующие шаги
«Инкапсуляция поля» является всего лишь первым шагом к сближению данных и поведений над этими данными. После того как вы создали простые методы доступа к полям, стоит ещё раз проверить места, где эти методы вызываются. Вполне возможно, код из этих участков уместнее смотрелся бы в самих методах доступа.