11.4 객체 통째로 넘기기
리팩터링 전
리팩터링 후
🧷 배경
하나의 레코드에서 값 두어 개를 가져와 인수로 넘기는 코드를 그 값들 대신 레코드를 통째로 넘기고 함수 본문에서 필요한 값들을 꺼내 쓰도록 수정한다.
레코드를 통째로 넘기면 변화에 대응하기 쉽다. 한편, 한 객체가 제공하는 기능 중 항상 똑같은 일부만을 사용하는 코드가 많다면 그 기능만 따로 클래스로 추출하자.
🧷 절차
매개변수들을 원하는 형태로 받는 빈 함수를 만든다.
새 함수의 본문에서는 원래 함수를 호출하도록 하며, 새 매개변수와 원래 함수의 매개변수를 매핑한다.
정적 검사를 수행한다.
모든 호출자가 새 함수를 사용하게 수정한다. 하나씩 수정하며 테스트한다.
호출자를 모두 수정했다면 원래 함수를 인라인한다.
새 함수의 이름을 적절히 수정하고 모든 호출자에 반영한다.
🧷 예시
🧷 리팩터링 전
🧷 리팩터링 후
Last updated