ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [도메인 주도 설계 철저 입문] 값 객체
    독서_dev/DDD 2024. 7. 19. 00:17
    값 객체
    → 시스템 특유의 ‘값’ 을 표현하는 객체 → 코드 자체가 문서
    ㄴ 성질 → 불변 / 교환 / 등가 비교
    ㄴ 기준 → 규칙 / 낱개
    ㄴ 행동 정의 → 자신만의 규칙을 갖는 도메인 객체
    ㄴ 장점 → 표현력 증가 / 무결성 유지 / 오대입 방지 / 로직 분산 방지

     

    2.1 값 객체란 ?

    값 객체란 시스템 특유의  '값'을 표현하기 위해 정의하는 객체다. 값 객체 역시 값의 성질을 그대로 갖는다.

     

    2.2 값의 성질과 값 객체의 구현

    값(객체)의 성질

    - 변하지 않는다.
    대입은 값이 변하는 것이 아니다.
    내용이 변하는 것이지 값 자체가 수정되는 것은 아니다.

    - 주고받을 수 있다. 교환 가능하다.
    값 자체 수정이 아닌 내용의 수정, 대입

    - 등가성을 비교할 수 있다.
    값끼리 직접 비교. 값 객체라면 일부를 꺼내 비교하는 건 부자연스러움.
    속성을 추가해도 수정이 필요 없다.

     

    2.3 값 객체가 되기 위한 기준

    어디까지 값 객체로 만들어야 하는가?

    - 규칙이 존재하는가
    - 낱개로 다루어야 하는가
    —> 값 객체로 정의할만한 가치가 있는 개념을 발견하면 도메인 모델로 피드백

     

    2.4 행동이 정의된 값 객체

    값 객체 -> 데이터와 행동을 한 곳에 모아둠으로써 자신만의 규칙을 갖는 도메인 객체가 된다.

    값 객체는 결코 데이터를 담는 것만이 목적인 구조체가 아니다. 값 객체는 데이터와 더불어 그 데이터에 대한 행동을 한곳에 모아둠으로써 자신만의 규칙을 갖는 도메인 객체가 된다.

     

    2.5 값 객체를 도입했을 때의 장점

    • 표현력 증가
    • 무결성 유지
    • 오 대입 방지
      • 코드가 올바른지 아닌지를 코드로 나타낼 수 있다면 그보다 더 나은 방법은 없다!
    • 로직 분산 방지

     

    댓글

Designed by Tistory.