아이템 44. 표준 함수형 인터페이스를 사용하라
주제 선정 이유
레벨 1에서 콘솔 체스 게임을 만들 때 언제 표준 함수형 인터페이스를 써야 하는지 고민되었습니다. 사용하라고 만들었으니 표준형 함수형 인터페이스를 사용하는 것이 좋은가? 필요에 따라 내가 만들어서 사용하는 것이 좋을까? 고민했고, 스터디원분들은 어떻게 사용하는 지 의견을 듣고 싶어 선정하였습니다.
표준 함수형 인터페이스
- 표준 함수형 인터페이스를 사용할 수 있는 경우라면 사용하자
- 표준 함수형 인터페이스의 이름을 보면 인터페이스의
역할
이 아닌 기능
에 대한 설명임을 알 수 있음(예. 입력 1개, 출력 1개는 함수 형식과 같다하여 Function 등)
- 즉, 표준 함수형 인터페이스를 사용하는 개발자가 함수형 인터페이스의 역할을 부여함
- 표준 함수형 인터페이스를 선택하는 기준은 입력값 타입과 개수, 출력값 타입과 개수일 뿐 각각 인터페이스의 의미는 없음
- 이름을 역할이 아닌 기능으로 지은 것이, 내가 사용하려는 형식과 일치하면 사용하라, 라는 의미로 받아들였음
커스텀 함수형 인터페이스
- 그럼 언제 커스텀 함수형 인터페이스를 사용해야 하는가?
- 표준 함수형 인터페이스가 제공하지 않은 형식을 사용하려 할 때
- 비즈니스 로직을 담고 있을 때
- 레벨1 자동차 경주 미션에서는 자동차의 이동 여부가 중요한 비즈니스 로직이기 때문에 커스텀 함수형 인터페이스를 생성하여 사용하였음
- 동일한 형식을 가지는 표준 함수형 인터페이스가 존재하나(예. 입력 없이 객체 하나를 반환하는 Supplier) 비즈니스 로직을 구현하는 용으로 만들어졌으므로 생성함
패키지 구조
- 커스텀 함수형 인터페이스가 표준 함수형 인터페이스처럼 형식이 일치할 때 사용하는 용, 비즈니스 로직을 구현할 때 사용하는 용 두 가지로 분류가 됨
- 사용하는 용도로 패키지를 분리하는 것이 좋다고 생각함