더북(TheBook)

2.6 새 줄로 그루핑

enum DistanceUnit {

    MILES, KILOMETERS;

    static final double MILE_IN_KILOMETERS = 1.60934;
    static final int IDENTITY = 1;
    static final double KILOMETER_IN_MILES = 1 / MILE_IN_KILOMETERS;

    double getConversionRate(DistanceUnit unit) { 
        if (this == unit) {
            return IDENTITY; 
        }
        if (this == MILES && unit == KILOMETERS) { 
            return MILE_IN_KILOMETERS;
        } else {
            return KILOMETER_IN_MILES;
        } 
    }
}

코드 블록이 서로 붙어 있으면 보통 한 덩어리로 간주합니다. 별개 블록을 새 줄로 분리하면 코드 이해도를 향상시킬 수 있습니다.

위 코드는 마일과 킬로미터 간 변환률을 반환하는 enum을 보여줍니다. 실제로 코드 시맨틱은 괜찮은데 문제가 숨어 있습니다. 이미 2.1 매직 넘버를 상수로 대체를 적용했는데 무엇이 문제일까요?

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