일급 컬력션?

일급 컬렉션을 쓰는 이유

불변

public class Order {
    private List<Item> items;

    public Order(List<Item> items) {
        this.items = items;
    }

    public List<Item> getItems() {
        return items;
    }
}

class Other {
  
  public void method() {
    //...
    List<Item> items = getItems();
    items.clear();
  }
}

-

얻을 수 있는 이점

  1. Items 클래스에서 컬렉션을 직접 관리하므로, 컬렉션 관련 로직이 한 곳에 집중됨 -> 비즈니스 종속적인 구조
  2. getItems()에서 Collections.unmodifiableList()를 사용하여 외부에서 컬렉션을 변경할 수 없도록 방어적 처리 -> 불변 보장
  3. Order 클래스가 List을 직접 다루지 않고 Items 클래스를 통해 다루므로 책임이 분리됨 -> 응집도 증가
  4. 컬렉션에 이름 부여

마무리?