일급 컬렉션(First Class Collection)이란?

일급 컬렉션

일급 컬렉션 정의

: collection을 wrapping 하면서, wrapping 한 collection 외에 다른 멤버 변수가 없는 상태를 일급 컬렉션이라 한데. 예를들자면

1
2
3
4
5
6
7
8
9
10
11
12
13
public class LadderService {
private int totalCnt;
private List<Player> players;

//...
}

public class Player {
private String name;
private String order;

//...
}

이렇게 되어있는 코드를 아래처럼 바꾸는거지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class LadderService {
private int totalCnt;
private Players players;

//...
}

public class Players {
private List<Player> players;

//...
}

public class Player {
private String name;
private String order;

//...
}

위의 Players 는 List players를 wrapping 하고 있으며 멤버변수로는 해당 컬렉션을 제외하고 다른 녀석은 가지고 있지 않아. 이런 놈을 바로 일급 컬렉션이라 해.

장점

  • 비지니스에 종속적인 자료구조를 만들 수 있다
  • Collection의 불변성을 보장할 수 있다 ← final로는 재할당만 금지하는 것이지 불변으로 만드는 것은 아니야
  • 상태와 행위를 한 곳에서 관리 가능하다
  • 이름이 있는 컬렉션을 만들 수 있다







https://jojoldu.tistory.com/412