코드를 읽을 때는 일반적으로 긍정 표현을 이해하기가 더 쉽습니다. 부정 표현은 간접적인 행동 계층을 하나 더 추가합니다. 단순히 “X가 해당된다”가 아니라 “X가 해당되지 않는다”라는 표현을 추가로 이해해야 하죠.

    추가 표현은 대부분 불필요합니다. 사소한 변경처럼 보이지만 매우 작은 단순화가 모여 (실제 코드에서 볼 수 있는) 더 복잡한 표현식에 도움을 줍니다.

    누구나 부정이 없는 표현을 좋아한다는 사실을 꼭 기억하세요.

    이제 간소화한 코드를 봅시다.

    class Laboratory {
    
        Microscope microscope;
    
        Result analyze(Sample sample) {
            if (microscope.isOrganic(sample)) {
                return analyzeOrganic(sample);
            } else {
                return Result.INORGANIC;
            }
        }
    
        private Result analyzeOrganic(Sample sample) {
            if (microscope.isHumanoid(sample)) {
                return Result.HUMANOID;
            } else {
                return Result.ALIEN;
            }
        }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.