모든 객체에는 생명주기가 있음.

→ 이들 중 상당수는 연산에서 사용된 후 가비지 컬렉터에게 보내지는 단순하고 일시적인 객체임

→ 이런 객체는 복잡하게 만들 필요가 없음.

그러나 다른 객체들은 더 오래 지속되며, 활성 메모리 안에서만 시간을 보내지 않음

→ 다른 객체와 상호의존성을 맺음

→ 여러 가지 상태의 변화를 겪기도 함.

→ 이러한 객체들을 관리하는 데 실패하면 MODEL-DRIVEN DESIGN을 시도하는 것이 쉽게 좌절될 수 있음

image.png

도메인 객체의 관리와 관련된 문제는 아래의 두 가지 범주로 나뉨

  1. 생명주기 동안의 무결성 유지하기
  2. 생명주기 관리의 복잡성으로 모델이 난해해지는 것을 방지하기

본장에서는 이러한 문제를 세 가지 패턴을 이용해 해결함

  1. AGGREATE는 소유권과 경계를 명확히 정의함으로써 모델을 엄격하게 만들어 객체 간의 연관관계가 혼란스럽게 얽히지 않게 함.

→ 이 패턴은 생명 주기상의 전 단계에 걸쳐 도메인 객체의 무결성을 유지하는 데 중요함

  1. 생명주기의 초기 단계로 초점을 바꿔 FATORY를 이용해 복잡한 객체와 AGGREGATE를 생성하고 재구성함으로써 그것들의 내부 구조를 캡슐화하는 것에 관해 살펴봄