일급 객체

아래의 3가지 조건을 충족하는 객체

  1. **변수나 데이터에 할당이 가능**해야 한다
  2. 객체의 **파라미터**로 넘길 수 있어야 한다
  3. 객체의 리턴 값으로 **리턴 가능**해야 한다

일급 컬렉션

콜렉션을 Wrapping 하면서 Wrapping한 콜렉션 외에 다른 멤버 변수가 없는 상태

// List<Car> cars를 Wrapping
// 일급 컬렉션
public class Cars {
    // 멤버변수가 하나 밖에 없다!!
    private List<Car> cars;
    // ...
}

위 코드처럼 List를 Wrapping 해주기도 하고 그 List 밖에 존재하지 않기 때문에 Cars는 일급 컬렉션이다.


일급 컬렉션을 사용하는 이유

만약 컬렉션을 필드로 가지고 있는 클래스에서 List의 검증이나 기타 등등 로직을 수행해야 한다고 하면

클래스의 역할이 무거워지고 중복 코드가 많아진다

위와 같은 문제를 해결하기 위해서 상태행위를 **각각 관리가 가능한 일급 컬렉션을 사용**한다