더북(TheBook)

예제 2를 위한 리팩토링 제안

Date 클래스 예제에서는 JavaDoc의 java.sql.Date 설명을 살펴보자.

“java.sql.Date 인스턴스가 감싼 밀리초(millisecond) 값은 관련된 인스턴스가 위치한 특정 시간대에 맞춰 시, 분, 초, 밀리초를 0으로 설정하는 방식으로 ‘정규화해야’만 SQL DATE 정의에 순응할 수 있다.”

 

JavaDoc 설명에서 사용한 ‘감싼’이라는 단어에서 얻은 힌트를 바탕으로 java.sql.Date에서 java.util.Date 인스턴스를 ‘감싸는’ 방법을 이용하여 더 나은 설계를 할 수 있다. 즉, 상속을 위임으로 변환한다(세부 사항은 6.8절 참조). 그뿐만 아니라 java.sql.Date가 SQL DATE에 순응하므로, java.util.Date라는 평범한 클래스에서 명백히 자신을 차별화하는 java.sql.SQLDate로 이름을 바꾸는 편이 더 바람직하다(그림 3.14 참조).

 

▲ 그림 3.14 java.util.Date와 java.sql.Date 클래스를 위한 리팩토링 제안(예제 2)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.