소트웍스 앤솔로지 의 객체지향 생활체조 파트에서 언급
규칙 8 - 일급컬렉션 사용
- 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 함
- 각 컬렉션은 그 자체로 포장돼 있음
- 필터가 이 새 클래스의 일부가 됨을 알 수 있음
- 필터는 또한 스스로 함수 객체가 될 수 있음
- 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 잇음
- Collection을 Wrapping하면서, 그 외 다른 멤버 변수가 없는 상태
class GameRanking {
private let ranks: [String: String]
init(ranks: [String: String]) {
self.ranks = ranks
}
}
Wrapping 함으로써 다음과 같은 이점을 가짐
- 비지니스에 종속적인 자료구조
- Collection의 불변성을 보장
- 상태와 행위를 한 곳에서 관리
- 이름이 있는 컬렉션