Skip to content

Latest commit

 

History

History
19 lines (14 loc) · 1.41 KB

11.4 객체 통째로 넘기기.md

File metadata and controls

19 lines (14 loc) · 1.41 KB
  • 하나의 레코드에서 값 두개 이상(대부분 두개)를 가져와 인수로 넘기는 코드를 발견하면?

    • 값들 대신에 레코드를 통째로 넘기고 함수 본문에서 필요한 값들을 꺼내 쓰도록 수정.

    이렇게 했을때의 장점은?

    1. 변화에 대응하기 쉽다! (그 함수가 더 다양한 데이터를 사용하도록 바껴도 매개변수 목록은 수정할 필요 X)
    2. 매개변수 목록이 짧아져서 일반적으로 함수 사용법을 이해하기 쉬워진다!
    3. 로직 중복을 없앨 수 있다! ( 레코드에 담긴 데이터 중 일부를 받는 함수가 여러 개라면 그 함수들끼리 같은 데이터를 사용하는 부분이 있을 것이고, 그 부분의 로직이 중복될 가능성이 커진다. )
  • 레코드와 함수가 서로 다른 모듈에 속한 상황이면 이 리팩터링을 수행하지 않음.

절차

  1. 매개변수들을 원하는 형태로 받는 빈 함수를 만든다.
  2. 새 함수의 본문에서는 원래 함수를 호출하도록 하며, 새 매개변수와 원래 함수의 매개변수를 매핑한다.
  3. 정적 검사를 수행한다.
  4. 모든 호출자가 새 함수를 사용하게 수정한다. 그 후 테스트한다.
  5. 호출자를 모두 수정했다면 원래 함수를 인라인한다.
  6. 새 함수의 이름을 적절히 수정하고 모든 호출자에 반영한다.