[클린 코드 읽고 정리해두고 다시 보기] SerialDate 리팩터링

inho ha·2024년 9월 26일
0

첫째, 돌려보자

  • SerialDateTests 라는 클래스는 테스트 커버리지가 50% 정도이다.
  • 테스트 케이스 추가
  • 오류 문자열 반환하는 대신 에러를 던지도록 수정

둘째, 고쳐보자

  • serial number 를 사용해 클래스를 구현하여 SerialDate이지만, 1899년 12월 30일 이후 serial 보다 relative offset 이 더 정확한 표현이다. 클래스 이름은 DayDate로 변경
  • 달을 정의하는 MonthConstants 클래스를 Month enum으로 변경
  • 달을 int로 받지 않고 Month enum으로 받으면서 isValidMonthCode 메서드 제거
  • 불필요한 주석 제거
  • 다른 클래스에서만 사용되는 변수 위치 이동
  • 인스턴스를 생성하는 여러 메서드들을 DayDateFactory 클래스로 분리
  • 사용하지 않는 변수 제거
  • 테스트 케이스 이외의 코드에서는 호출하지 않는 메서드 제거
  • 추상 메서드를 DayDate 클래스로 이동
profile
inho ha / ian(swatchon) / iha(42seoul)

0개의 댓글