조건식과 조건에 딸린 조건절을 각각 함수로 추출하기
보호구문: 조건문에서 조건이 참인 경우 예외처리나 return 문을 통해 조건절에서 빠져나오는 것
타입을 여러 개 만들고 각 타입이 조건부 로직을 자신만의 방식으로 처리하도록 구성하는 방법이 있다.
1. switch문의 case별로 클래스를 만들기. => 공통 switch 로직의 중복을 없앨 수 있다.
2. 기본 동작을 슈퍼클래스도, 변형 동작에 해당되는 case를 각각의 서브클래스로 만들기.
특이 케이스 패턴: 특수한 경우의 공통 동작을 하나로 모아 사용하는 방식
클래스 사용 예제
객체 리터럴 사용 예제
어서션: 항상 참이라고 가정하는 조건부 문장
특정 조건이 참일 때만 제대로 동작하는 코드 영역이 있는 경우 어서션을 추가하자.
제어 플래그 코드의 동작을 변경하는데 사용되는 변수
어딘가에서 값을 계산해 제어 플래그엥 설정ㅇ한 후 달른 어딘각의 조건문에서 검사하는 형태로 쓰이는 경우 ---> 저자는 악취로 본다.
// 변경 전
for (const p of people) {
if (!found) {
if (p === "조커") {
sendAlert();
found = true;
}
}
}
// 변경 후
for (const p of people) {
if (p === "조커") {
sendAlert();
break;
}
}