ApplePredicate 인터페이스를 구현하는 여러 클래스를 인스턴스화 하는 과정이 좀 복잡할 수 있다.
→ 익명 클래스를 사용해 보자
익명 클래스란?
자바의 지역 클래스( 블록 내부에 선언된 이름이 없는 클래스 이다.)
익명클래스를 만들면 클래스 선언와 인스턴스화 동시 진행 가능!
다섯번째시도
: 익명 클래스를 사용해보자
List<Apple> redApples = filterApples(inventory, new ApplePredicate(){
public boolean test(Apple apple){
return RED.equals(apple.getColor());
}
})
위의 예제를 보면 클래스를 새로 만들지 않고 익명의 클래스를 만들어서 작성하였다.
그치만 익명의 클래스도 자리를 많이 차지하기 때문에 좀 더 간단하게 사용하도록 !
여섯번째 시도
: 람다 표현식 사용
List<Apple> resuljt = filterApples(inventory, (Apple apple ) -> RED.equals(apple.getColor()));
동작 파라미터화 정리
- 동작 파라미터화를 이용하면 변화하는 요구사항에 더 잘 대응할 수 있는 코드를 구현 할 수 있다.
- 자바8 에서는 인터페이스를 상속받아 여러 클래스를 구현해야하는 수고를 덜 수 있다.
'JAVA' 카테고리의 다른 글
Model Mapper 사용법 (0) | 2023.01.26 |
---|---|
동작 파라미터화 코드 전달하기(1) (0) | 2023.01.10 |
int 와 long (0) | 2022.12.27 |
BDD 스타일 Mockito API (0) | 2022.12.26 |
Mock 객체 확인 (0) | 2022.12.15 |