Удаление сеттера.
Проблема
Значение поля должно быть установлено только в момент создания и больше никогда не меняться.
Решение
Удалите методы, устанавливающие значение этого поля.
##Пример
До
class Account {
private String id;
Account(String id) {
setId(id);
}
void setId(String arg) {
id = arg;
}
}После
class Account {
private final String id;
Account(String id) {
this.id = id;
}
}##Зачем делать рефакторинг
Вы хотите сделать значение поля неизменяемым.
##Как делать рефакторинг
-
Значение поля должно меняться только в конструкторе. Если конструктор не содержит параметра для установки значения, нужно его добавить.
-
Найдите все вызовы сеттера.
-
Если вызов сеттера стоит сразу после вызова конструктора текущего класса, переместите его аргумент в вызов конструктора и удалите сеттер.
-
Вызовы сеттера в конструкторе замените на прямой доступ к полю.
-
-
Удалите сеттер.