2.2 정수 상수 대신 열거형

    class CruiseControl {
        static final int STOP_PRESET = 0;
        static final int PLANETARY_SPEED_PRESET = 1; 
        static final int CRUISE_SPEED_PRESET = 2;
    
        static final double STOP_SPEED_KMH = 0;
        static final double PLANETARY_SPEED_KMH = 7667; 
        static final double CRUISE_SPEED_KMH = 16944; 
    
        private double targetSpeedKmh;
    
        void setPreset(int speedPreset) { 
            if (speedPreset == CRUISE_SPEED_PRESET) {
                setTargetSpeedKmh(CRUISE_SPEED_KMH); 
            } else if (speedPreset == PLANETARY_SPEED_PRESET) {
                setTargetSpeedKmh(PLANETARY_SPEED_KMH);
            } else if (speedPreset == STOP_PRESET) {
                setTargetSpeedKmh(STOP_SPEED_KMH);
            }
        }
    
        void setTargetSpeedKmh(double speed) { 
            targetSpeedKmh = speed;
        } 
    }

    이전 절인 2.1 매직 넘버를 상수로 대체에서 보았듯이 매직 넘버보다 상수가 훨씬 낫습니다. 하지만 옵션을 모두 열거할 수 있다면 자바 타입 시스템이 제공하는 방법이 더 낫습니다.

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