JAVA

일급 컬렉션 (First Class Collection)

JUN0126 2021. 7. 13. 01:06

일급 컬렉션 (First Class Collection) 이란?

- Collection을 Wrapping 하면서, 그 외에 다른 멤버 변수가 없는 상태를 뜻한다. 

- 일급 컬렉션이라는 단어는 소트웍스 앤솔로지의 객체지향 생활체조 파트에서 언급 되어있다.

" 일급 콜렉션 사용
이 규칙의 적용은 간단하다.
콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다.
각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈이다.
필터가 이 새 클래스의 일부가 됨을 알 수 있다.
필터는 또한 스스로 함수 객체가 될 수 있다.
또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다.
이는 인스턴스 변수에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다.
콜렉션은 실로 매우 유용한 원시 타입이다.
많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 의미적 의도나 단초는 거의 없다.

- 소트웍스 앤솔로지 객체지향 생활체조편 "

 

일급 컬렉션을 사용함으로써 얻는 이점 4가지

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

 - 비즈니스에 종속적이란 말은 생성된 클래스의 컬렉션을 관리하는 클래스(일급 컬렉션)를 따로 만들어

   해당 클래스(일급 컬렉션)은 클래스 내부적으로 비즈니스 로직에서 검증하는 로직을 처리 하여 관리 할 수 있다

 - 위와 같이 일급 컬렉션으로 로직 관리 시 해당 로직이 필요한 부분에서 일급 컬렉션 선언만으로 로직을 관리 할 수 있다.

2. 불변

  - final은 불변을 만들어 주는것이 아니라, 재할당만 금지한다, 따라서 컬렉션에서 값 추가, 변경, 삭제 등 이벤트가 일어날 경우  final로는 객체의 불변성을 보장 할 수 없다.

  - 일급 컬렉션의 경우, 해당 클래스를 사용하여 값을 만들거나 가져올 수 밖에 없음으로 불변 컬렉션을 만들 수 있다.

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

 - 컬렉션에 대한 로직을 일급 컬렉션에서 관리 시 해당 컬렉션에 대한 상태와 행위를 클래스 안에 정의 함으로써

   일급 컬렉션 사용시 메소드의 중복 생성을 막을 수 있으며 필요한 로직을 만들어놔 추후에 필요 할떄 사용 할 수 있다.

4. 이름이 있는 컬렉션

 - 일급 컬렉션이 아닌 단순 컬렉션 구현 후 변수명 부여 시 해당 변수명의 이름으로만 검색을 하여 사용법이나 로직을 확인 해야 하는데, 일급 컬렉션으로 관리하면 클래스 단위로 관리되기 떄문에 검색의 수월함을 알 수 있다

 - 또한 각 컬렉션간 변수명이 다를 수 있어 혼돈이 될 수 있으나 클래스 관리 시 해당 클래스의 관리로 컬렉션을 관리하기 때문에 협업 간에 도움이 된다.

 

 

마무리

아직은 자바의 개념도 명확하지 않은데 일급 커넥션이라는 개념과 단어가 낯설긴하다

 하지만 읽어볼수록 이점이 많은 객체지향 개념이며 컬렉션을 사용할 시 해당 개념을 적용하여 사용하면

 보다 관리가 쉬운 설계가 되지 않을까 한다.

 추후 이 개념을 적용하면서 해당 블로그에 대한 블로그 리팩토링을 다시 한 번 꼭 해야겠다.

 

 

 

 

 

 

 

참조 : https://jojoldu.tistory.com/412

 

'JAVA' 카테고리의 다른 글

JSON 변환 라이브러리 (Gson,Jackson)  (0) 2022.03.17
Optional 클래스  (0) 2021.07.14
컬렉션 프레임워크  (0) 2021.07.10
프로세스와 쓰레드  (0) 2021.07.09
상속  (0) 2021.07.07