일급 컬렉션

  • 컬렉션을 컬렉션 하나만을 상태값으로 갖는 클래스로 만든 것을 일급 컬렉션이라고 한다
  • 왜 일급 컬렉션을 쓸까?
    • 조건을 만족해야하는 컬렉션을 만들어주고 싶을 때
      • Ex) 생성자에 validate() 메서드를 추가해 중복을 제거한다든지 등…
    • 컬렉션의 불변을 보장해주고 싶을 때
      • 일반 컬렉션에 final을 붙여줘도 재할당이 안 되는 거지 add()put() 등을 통해 값을 추가해줄 수 있다.
      • 값을 추가하거나 변경하지를 못 하도록 하려면 컬렉션의 값을 변경할 수 없는 메서드로만 구성된 클래스로 만들어주면 된다
    • 상태값과 그 상태에 대한 로직을 함께 관리해줄 때
      • Ex) List에 데이터를 담고 Service에서 로직을 수행할 때는 코드 중복이나 코드에 대한 관계를 표현해줄 수 없다. List 데이터를 갖고 있는 클래스에서 List 데이터를 활용하는 로직을 수행해야지 그런 문제들을 없애줄 수 있다.
    • 이름이 있는 컬렉션
      • 컬렉션에 이름을 붙여줘서 의미를 부여해줄 수 있고 명확하게 표현이 가능해진다

출처