Posts [Java] 일급 컬렉션
Post
Cancel

[Java] 일급 컬렉션

일급 컬렉셕이란?

단순하게 컬렉션을 Wrapping 하여 클래스로 묶어내는 것을 말한다.

예를 들어, 다음과 같은 코드를

1
2
3
4
Map<String, String> map = new HashMap<>();
map.put("1", "A");
map.put("2", "B");
map.put("3", "C");

아래와 같이 Wrapping 하는 것을 얘기한다.

1
2
3
4
5
6
7
8
public class GameRanking {

    private Map<String, String> ranks;

    public GameRanking(Map<String, String> ranks) {
        this.ranks = ranks;
    }
}

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

1. 비즈니스에 종속적인 자료구조

  • 실제 서비스단에서 사용되는 비즈니스 로직을 클래스 안에서 관리함으로써 실수를 줄일 수 있다.

2. Collection의 불변성을 보장

  • 일반적인 List를 쓴다고 가정해보자. 여기서 데이터를 추가하거나 삭제하는 것을 제한할 순 없다.
  • 클래스로 캡슐화함으로써 데이터 변경에 대해 제어를 할 수 있다.

3. 상태와 행위를 한 곳에서 관리

  • 클래스로 캡슐화함으로써 데이터의 상태와 행위를 한 곳에서 관리할 수 있다. 이는 응집도를 높이는 설계가 될 수 있다.

4. 이름이 있는 컬렉션

  • 단순하게 변수명만으론 데이터가 어디서 변경되는지 파악하기 어렵다.

출처

This post is licensed under CC BY 4.0 by the author.