변수 쪼개기 (Split Variable)

What? 한 변수가 하나의 역할만 하도록 이름을 분리하고 변수를 나누는 리팩토링입니다.

Why? 어떤 변수가 두 가지 의미를 가지는 경우. 한 변수가 여러번 할당되는 것이 옳은가? temp 변수에 처음에는 둘레를 구한 값을 할당했다가 두번 째에는 넓이를 구한 값을 저장하는 등 여러 용도로 사용할 때 한 변수는 하나의 용도로만 사용하도록 perimeter, area 등으로 Split Variable을 적용하는게 변수를 이해하기 더 좋습니다.

필드 이름 바꾸기 (Rename Field)

명확한 이름 주기

파생 변수를 질의 함수로 바꾸기 (Replace Derived Variable with Query)

What? 계산할 수 있는 변수를 필드로 선언하지 않는 것. 수량 * 아이템 가격 = 총 합계. 총 합계에 해당하는 필드를 만들지 않는 것입니다. 다른 변수를 통해서 계산할 수 있는 변수는 굳이 만들지 않고 함수를 통해서 값을 가져올 수 있도록 합니다.

Why? 계산 자체가 데이터의 의미를 잘 표현하는 경우도 있고 해당 변수가 어디선가 잘못된 값으로 수정될 수 있는 가능성을 제거할 수 있다.

참조를 값으로 바꾸기 (Change References to Value)

What? 메서드 파라미터에 Reference 대신 Value를 넘기는 것입니다. 메서드 파라미터에 Employee를 줄 것이냐 Employee의 name값을 전달할 것이냐와 같습니다.

Why? 파라미터에 Reference를 넘길 때 메서드에서 해당 Reference에 대한 의존성이 생길 수 있습니다. 파라미터에 composite한 객체 타입을 줄 것인가 low level의 데이터를 전달할 것인가 판단이 중요합니다. Reference안의 여러 데이터들을 참조할 것이 있다면 해당 Reference를 전달하겠지만 그 중 일부 변수만을 사용한다면 해당 값들을 메서드 파라미터에 전달합니다.

값을 참조로 바꾸기 (Change Value to Reference)

참고자료