[리팩터링 카탈로그] 1-9. 여러 함수를 클래스로 묶기

절차

  1. 함수들이 공유하는 공통 데이터 레코드를 캡슐화 한다
    → 공통 데이터가 레코드 구조로 묶여 있지 않다면 먼저 매개변수 객체 만들기로 데이터를 하나로 묶는 레코드를 만든다.
  2. 공콩 레코드를 사용하는 함수 각각을 새 클래스로 옮긴다(함수 옮기기)
    → 공통 레코드의 멤버는 함수 호출문의 인수 목록에서 제거한다.
  3. 데이터를 조작하는 로직들은 함수로 추출해서 새 클래스로 옮긴다.

예시

Before:

function base(aReading) {
  //...
}
function taxableCharge(aReading) {
  //...
}
function calculateBaseCharge(aReading) {
  //...
}

After:

class Reading {
  base() {
    //...
  }
  taxableCharge() {
    //...
  }
  calculateBaseCharge() {
    //...
  }
}

출처 : 리팩터링 2판 – Chapter6

댓글 남기기