9.1 가독성과 유연성을 개선하는 리팩터링

람다 표현식을 이용한 코드는 다양한 요구사항 변화에 대응할 수 있도록 동작을 파라미터한다.

9.1.1 코드 가독성 개선

코드 가독성이 좋다는 것은 어떤 코드를 다른 사람도 쉽게 이해할 수 있음을 의미한다.

9.1.2 익명 클래스를 람다 표현식으로 리팩터링하기

하나의 추상 메서드를 구현하는 익명 클래스는 람다 표현식으로 리팩터링할 수 있다.

// 익명 클래스를 사용한 이전 코드
Runnable r1 = new Runnable() {
	public void run() {
		System.out.println("Hello");
	}
};

// 람다 표현식을 사용한 코드
Runnable r2 = () -> System.out.println("Hello");

9.1.3 람다 표현식을 메서드 참조로 리팩터링하기

람다 표현식 대신 메서드 참조를 이용하면 가독성을 높일 수 있다.

Map<CaloricLevel, List<Dish>> dishesByCaloricLevel = 
	menu.stream().collect(groupingBy(Dish::getCaloricLevel));

// 람다 표현식을 메서드로 추출 후 dish 클래스에 getCaloricLevel 메서드 추가
public class Dish {
	...
	public CaloricLevel getCaloricLevel() {
		...
	}
}