일급 컬렉션 컬렉션은 wrapping 하면서 컬렉션 외의 다른 필드를 가지고 있지 않은 클래스를 일급 컬렉션 이라고 한다. 이번 여덟번째 지침에서는 도메인 클래스를 컬렉션으로 감싸 처리하는 경우, 이를 일급 컬렉션으로 구현하라는 가이드를 제시한다. 숨은 의미 컬렉션은 '무리', '모음' 이라는 의미를 갖는다. 클래스 인스턴스들을 컬렉션 자료구조로 감싸게 되면 구조로부터 도메인 로직을 얻을 수 있다. 인스턴스들의 집합에서 특정 인스턴스를 찾아내거나, 정렬을 할 수도 있고, 특정한 패턴으로 자료구조의 내용을 변형하는 것도 가능하다. 일급컬렉션은 인스턴스의 집합을 '복수형 클래스'로 정의함으로써 단수형 클래스가 가질 수 없는 비즈니스 로직을 구현할 수 있도록 도와주는 도메인 설계라고 볼 수 있다. 예시 고객이..
2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다 클래스의 인스턴수 변수를 제한하라는 지침이다. 여기서의 인스턴수 변수는 원시타입, 또는 컬렉션과 같이 기본 또는 자료구조형의 변수를 의미한다. 숨은 의미 클래스의 인스턴수 변수는 클래스가 관리하는 '상태' 를 의미한다. 클래스의 상태는 클래스의 정체성을 나타내는 요소이다. 이 상태의 종류가 많다는 것은 클래스가 여러 종류의 정체성을 가지고 설계되었다는 것을 의미한다. 이 지침은 원칙의 세 번째 지침인 '모든 원시값과 문자열을 포장한다' 의 내용과 통한다. 세 번째 지침은 상태에 도메인적 의미를 부여하라는 가이드라고 할 수 있다. 이 일곱번째 지침에서는 의미를 갖는 상태를 어떻게 관리하는 것이 좋은지에 대한 내용을 이야기하고 있다. 예시 class N..
모든 엔티티를 작게 유지한다 이 원칙에서 칭하는 엔티티는 클래스, 패키지를 통틀어 업무적 구분을 갖는 단위를 의미한다. '작은 엔티티' 라고 판단할 수 있는 대략적인 기준은 다음과 같다. 50줄 이하의 클래스 10개 이하의 파일을 갖는 패키지 숨은 의미 엔티티를 작성할 때 하나의 목적을 염두하고 설계하라는 의미이다. SOLID 원칙중 '단일 책임 원칙' 과도 상통한다. 먼저 클래스의 크기를 줄여 분리하기 시작하면, 작은 역할을 하게 될 것이다. 이 때 작은 역할을 통해 이루려는 하나의 목적을 도출할 수 있다. 그 목적을 이루기 위한 클래스들을 모아 패키지로 구성하면 된다. 패키지와 파일이 많은 것은 나쁜게 아니다 이 원칙을 지키기 어려운 가장 큰 원인은, 패키지를 새로 만들고 파일을 새로 만드는 행위에 ..
- Total
- Today
- Yesterday