클래스에 유일한 메서드가 인자로 전달된 객체에 뭔가를 하는 메서드인 경우, 그런 메서드 하나뿐인 객체는 해당 메서드의 포인터 구실을 하며, 이러한 객체를 함수 객체라고 부른다.
이러한 실행 가능전략을 인자로하는 메서드들은 Comparator 인터페이스를 자료형을 받으며, 실행전략 클래스들은 Comparator 인터페이스를 구현해야 한다.
실행 가능 전략 클래스는 익명 클래스로 정의하는 경우도 많다. 하지만 아래와 같이 사용하면 sort를 호출할 때마다 새로운 객체가 만들어진다. sort 함수가 여러 번 수행되는 클래스라면 함수객체를 private static final 필드에 저장하고 재사용하는 것을 고려해 보길 바란다.
private static final 필드를 활용한 클래스.
요약
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[제네릭]규칙23. 새 코드에는 무인자 제네릭 자료형을 사용하지마라. (0) | 2017.04.27 |
---|---|
[클래스와 인터페이스]규칙22. 멤버 클래스는 가능하면 static으로 선언하라 (0) | 2017.04.26 |
[클래스와 인터페이스]규칙20. 태그달린 클래스 대신 클래스 계층을 활용하라 (0) | 2017.04.25 |
[클래스와 인터페이스]규칙19. 인터페이스는 자료형을 정의할 때만 사용하라 (0) | 2017.04.25 |
[클래스와 인터페이스]규칙18. 추상 클래스 대신 인터페이스를 사용하라 (0) | 2017.04.25 |