더북(TheBook)

1.4 불 표현식 간소화

class SpaceShip {

    Crew crew;
    FuelTank fuelTank;
    Hull hull;
    Navigator navigator;
    OxygenTank oxygenTank;

    boolean willCrewSurvive() {
        return hull.holes == 0 &&
            fuelTank.fuel >= navigator.requiredFuelToEarth() &&
            oxygenTank.lastsFor(crew.size) > navigator.timeToEarth();
    }
}

여러 조건문이 합쳐진 불 표현식은 대부분 이해하기 어렵고 잘못 이해하기 쉽습니다. 하지만 몇 가지 간단한 요령으로 더 쉽게 만들 수 있죠!

이전 비교에서처럼 유효성 검사 메서드 예제를 살펴보겠습니다. 조건문은 이전보다 복잡하지만 1.3 불 표현식을 직접 반환에서 배운 방법대로 적용해 반환문 하나로 압축한 상태입니다.

조건문이 너무 길면 이해하기 어렵습니다. 코드가 몇 줄이나 이어지고 서로 다른 객체 다섯 개를 검사하는 코드를 조합해야 합니다. 길이가 길다 보니 일부를 변경해야 할 때 실수가 발생하기 쉽습니다. 하지만 미처 변경하기도 전에 아마도 귀중한 프로그래밍 시간을 기나긴 조건문의 의미를 이해하는 데 써야 할 거예요.

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