7.1 이미 존재하는 기능을 다시 구현하지 않기
- 바퀴 재창조 하지마셈
- 컬렉션을 반복문으로 처리하면, 조건 중첩이 발생하기 쉬움
- 스트림 같은 선언형 프로그래밍으로 같은 기능을 가독성 있게 구현 가능
- 반복문, 조건문 없어도 같은 기능 구현
- 위 구문으로 인해 발생하는 버그도 줄어듬 → 선언형이므로
for (Item each: items) {
if (each.name.equals("감옥 열쇠")) {
hasPrisonKey = true;
break;
}
}
boolean hasPrisonKey = items.stream().anyMatch(
item -> item.name.equals("감옥 열쇠")
);
7.2 반복 처리 내부 조건 분기 중첩
- 조기 continue
- 특정 조건하에 남은 로직 처리하지 않고 다음 멤버를 처리
- 조기 break
- 특정 조건하에 남은 로직 처리하지 않고 반복문 벗어나기
- 반복문 처리 내부에서 if 조건이 중첩되면
7.3 응집도가 낮은 컬렉션 처리
- 컬렉션 관련 작업 처리 코드가 늘어날 수록 응집도가 낮아짐
- 컬렉션 처리 캡슐화