일급 컬렉션이란?
●일급 컬렉션이란?
일급 컬렉션(First-Class Collection)은 하나의 컬렉션을 감싸는 클래스를 만들고, 해당 클래스에서 컬렉션과 관련된 비즈니스 로직을 관리하는 패턴
아래 코드 중에서 Order의 List 자료구조를 감싼 Orders가 일급 컬렉션의 예시
// 일급 컬렉션
public class Orders {
private final List<Order> orders;
public Orders(List<Order> orders) {
validate(orders); // 검증 수행
...
}
public void add(Order order) {
if (order == null) {
throw new IllegalArgumentException("Order cannot be null");
}
orders.add(order);
}
public List<Order> getAll() {
return Collections.unmodifiableList(orders);
}
public double getTotalAmount() {
return orders.stream()
.mapToDouble(Order::getAmount)
.sum();
}
}
public class OrderService {
private final Orders orders = new Orders();
public void addOrder(Order order) {
orders.add(order);
}
public Orders getOrders() {
return orders;
}
// 추가 비즈니스 로직...
}
●일급 컬렉션을 사용해야하는 이유?