데이터 구조에 집중한 리팩터링
9.1 변수 쪼개기
변수 1개당 역할은 하나이다
역할이 둘 이상인 변수가 있다면 쪼개야 한다.
(여러 용도로 쓰인 변수는 코드를 읽는 이에게 커다란 혼란을 줌)
같은 역할에 여러 번의 할당은 필요할 때도 있다
-> 루프변수, 수집변수
9.2 필드 이름 바꾸기
점진적으로 안전하게 바꾸기
9.3 파생 변수를 질의 함수로 바꾸기
9.4 참조를 값으로 바꾸기
객체 내부를 수정하던 것을, 값 객체 통채 하나로 바꾸기
( 불변 데이터이므로 외부에 건네주는 경우 등 나중에 그 값이 바뀌어 내부에 영향 끼치지 않음 )
새로운 속성을 담은 객체로 기존 내부 객체를 통채로 대체
값 객체 - 불변 : setter없이 constructor 만으로
9.5 값을 참조로 바꾸기
데이터를 갱신해야 할 때, 모든 복제본을 찾아서 빠짐없이 갱신해야 하며, 하나라도 놓치면 일관성이 깨짐
‘저장소’에서 값을 찾아오기
9.6 매직 리터럴 바꾸기
일반적인 리터럴 값을 변수로
'Code' 카테고리의 다른 글
[ 리팩토링 by 마틴 파울러 ] Chapter11. API 리팩토링 (0) | 2021.07.22 |
---|---|
[ 리팩토링 by 마틴 파울러 ] Chapter10. 조건부 로직 간소화 (0) | 2021.07.22 |
[ 리팩토링 by 마틴 파울러 ] Chapter08. 기능 이동 (0) | 2021.07.22 |
[ 리팩토링 by 마틴 파울러 ] Chapter07. 캡슐화 (0) | 2021.07.21 |
[ 리팩토링 by 마틴 파울러 ] Chapter06. 기본적인 리팩터링 (0) | 2021.07.21 |