First Class Collection
2024-03-13
콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈이다.
필터가 이 새 클래스의 일부가 됨을 알 수 있다.
필터는 또한 스스로 함수 객체가 될 수 있다.
또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변수에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다. 콜렉션은 실로 매우 유용한 원시 타입이다.
많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 의미적 의도나 단초는 거의 없다.
- 소트웍스 앤솔로지 객체지향 생활체조편
public class Collection {
private final Map<String, String> items;
public Collection(Map<String, String> items) {
this.items = items;
}
}
이와 같이 랩핑을 하면서 그 외 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 한다.
특징 :
- 비지니스에 종속적인 자료구조
- Collection의 불변성을 보장
- 상태와 행위를 한 곳에서 관리
- 이름이 있는 컬렉션
Java의 final
은 정확히는 불변을 만들어주는 것은 아니며, 재할당만 금지한다.