구조체 리팩터링은 위치 기반 값을 이름 있는 필드로 바꾼다
width와 height처럼 의미가 있는 값은 tuple 위치보다 struct 필드로 표현할 때 호출부와 변경이 안전해진다.
- (width, height)
- 위치 의미를 기억해야 함
- 0과 1을 혼동하기 쉬움
- 필드 추가가 어렵다
- Rectangle { width, height }
- 이름으로 의미 노출
- 메서드 연결 가능
- 변경 지점이 명확
| 구분 | 의미 | 판단 |
|---|---|---|
| 읽기성 | tuple은 위치 해석 | struct는 필드 이름 |
| 확장성 | 필드 추가 | struct가 유리 |
| 메서드 | impl Rectangle | 데이터와 동작 결합 |
핵심 구조체 리팩터링은 값의 개수가 아니라 값의 의미를 타입 경계 안에 넣는 것이다.