Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Удаление метода установки значения (Remove Setting Method).md
2026-02-23 19:52:05 +03:00

34 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#рефакторинг #методы_рефакторинга
![[Pasted image 20250213084339.png]]
### **Проблема**
Значение поля должно быть установлено только в момент создания и больше никогда не меняться
```typescript
class Person {
get name() {...}
set name(aString) {...}
}
```
### **Решение**
Удалите методы, устанавливающие значение этого поля
```typescript
class Person {
get name() {...}
}
```
### **Причины рефакторинга**
Вы хотите сделать значение поля неизменяемым.
### **Порядок рефакторинга**
1. Значение поля должно меняться только в конструкторе. Если конструктор не содержит параметра для установки значения, нужно его добавить
2. Найдите все вызовы сеттера
1. Если вызов сеттера стоит сразу после вызова конструктора текущего класса, переместите его аргумент в вызов конструктора и удалите сеттер.
2. Вызовы сеттера в конструкторе замените на прямой доступ к полю.
3. Удалите сеттер
### **Ссылки**
- https://refactoring.guru/ru/remove-setting-method
- [[Мартин Фаулер - Рефакторинг кода на JavaScript]]