Closed taxol1203 closed 3 years ago
같은 뜻입니다.
Item 24에서 함수
가 익명클래스와 함께 언급되는데, 작은 함수 객체를 만드는데 익명 클래스가 사용된다고 하니 책에서도 함수 객체를 의미하는 것 같습니다.
대표적으로 쓰이는 함수 객체는 Comparator입니다. Comparator가 compare를 메서드로 갖고 있는 함수 객체이며, 람다로 익명클래스를 만들 수도 있습니다. 클래스 내부에 메서드가 하나뿐이라 (또는 클래스 목적이 메서드 수행이라서) 람다로 구현했을 때 누락되는 메서드가 없기 때문입니다.
int comparator = new Comparator<T>(){
public int compare(<T> o1, <T> o2){
....
}
}
싱글턴의 전형적인 예로 함수와 같은 무상태 객체 가 있다고 합니다.
무상태 객체 에 대해 검색을 해보니,
인스턴스 변수가 없는 객체
라고 합니다.와 같이 인스턴스 변수가 없거나,
와 같이 컴파일 타임에 정의되어있고 변경되지 않는 상수를 가지는 경우도 Stateless Object라고 지칭할 수 있습니다.
다시 질문으로 돌아가서, 함수 객체는 (객체가 함수처럼 동작)하는 것이라고 알고 있는데, 다음 예와 같이 인스턴스 변수를 가지는 함수 객체도 있는 것을 알 수 있습니다.
책에서 설명하는
함수
라는 것은 제가 예시로 제시한 함수 객체와 다른 뜻일까요?