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 불 표현식을 직접 반환에서 배운 방법대로 적용해 반환문 하나로 압축한 상태입니다.
조건문이 너무 길면 이해하기 어렵습니다. 코드가 몇 줄이나 이어지고 서로 다른 객체 다섯 개를 검사하는 코드를 조합해야 합니다. 길이가 길다 보니 일부를 변경해야 할 때 실수가 발생하기 쉽습니다. 하지만 미처 변경하기도 전에 아마도 귀중한 프로그래밍 시간을 기나긴 조건문의 의미를 이해하는 데 써야 할 거예요.