You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
[CHAPTER 2] - 동작 파라미터화 코드 전달하기
목차
동작 파라미터화 (behavior parameterization)
동작 파라미터화 : 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록
자주 바뀌는 요구사항에 효과적으로 대응 가능
EX
변화하는 요구사항에 대응하는 예시
동작 파라미터화와 전략 패턴 (Strategy Pattern)
변화하는 행위 -> 즉 메서드(함수)를 파라미터화 해야하는데 자바는 이 부분에 문제가 있음
자바의 함수 타입 표현의 문제점?
자바스크립트의 일급 함수?
일급 시민 (first class citizen)
일급 객체
: 객체를 일급 시민으로 취급한다는 것
일급 함수 (first class function)
: 함수를 일급 시민으로 취급한다는 것
자바스크립트의 함수를 인수로 전달하는 예시 (일급 함수)
자바에서의 일급 함수?
자바에서 함수를 일급 함수처럼 사용하기 위한 방법
1. 메서드를 하나 가진 객체를 이용한다.
위 방식의 문제점
해결책
2. 추상 메서드를 하나만 담은 인터페이스 or 추상 클래스
이전 멜론 예시를 추상클래스로 리팩토링 해보자
익명 클래스의 문제점
해결책
3. 익명 클래스보다는 람다를 사용
함수형 인터페이스 (Functional Interface)
익명 클래스를 활용하여 리팩토링한 Melon 필터 코드를 람다를 이용하여 리팩토링 해보자

- intellJ IDE 에서도 익명 클래스를 람다로 변환하기를 추천하고 있다.4. 람다보다는 메서드 참조를 사용
Reference
이펙티브 자바, 프로그래밍 인사이트, [조슈아 블로크]
코딩 개념 잡는 자바 코딩 문제집, 길벗, [앵겔 레너드]
Beta Was this translation helpful? Give feedback.
All reactions