본문 바로가기

Java/모던 자바

동작 파라미터화 코드 전달하기

동작 파라미터화 코드 전달하기

요구사항은 항상 바뀌게 된다.

비용을 최소화 하면서 변화의 대응하는게 좋다.

 

동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응 할 수 있다.

동작 파라미터화란 아직 어떻게 실행할지 결정되지 않은 코드 블록을 의미한다.

즉, 코드 블록의 실행이 나중으로 미뤄진다.

 

동작 파라미터

책에서의 예제는 Predicate 를 이용해서 설명 하고 있다.

Predicate 는 true, false 를 반환하는 함수

 

전략패턴을 쓰고 있는데 

ApplePredicate 인터페이스를 구현한 여러 클래스를 두고 

클래스에서는 필터링할 조건들을 return 시키고 있다.

 

filterApples 라는 메소드에서 전략에 맞게 클래스를 구현해서 쓰는 방식이다.

 

즉 filterApples 의 동작을 어떻게할지 파라미터화 한것이다.

 

복잡한 과정 간소화

위에서는 인터페이스마다 여러 클래스를 구현했는데

클래스 생성 없이 만드는 방법을 봐보자

 

익명 클래스 기법을 제공해서 클래스 선언과 인스턴스화를 동시에 할 수있다.

 

익명 클래스

말 그대로 이름이 없는 클래스

new ApplePredicate() {} 를 이용해서 클래스 생성없이 만들었다.

 

하지만 여전히 공간을 많이 차지하는데, 

람다를 사용해서 더 간단하게 코드를 전달하는 기법을 봐보자

 

람다 표현식 사용

(Apple apple) -> RED.eqauls(apple.color())

 

와 같은 람다 표현식을 사용했다.

 

 

 

 

 

 

 

 

 

'Java > 모던 자바' 카테고리의 다른 글

자바 8,9,10,11  (0) 2021.10.18