💎
DDDドメインモデリング設計原則 2026年4月1日

値オブジェクト(Value Object)

📁 概念 👁 -- 閲覧

値オブジェクト(Value Object)

定義

ビジネス上の意味を持つ値を、プリミティブ型ではなく専用クラスで表現するオブジェクト。 同一性(ID)ではなく値の内容で等価性を判断し、不変(immutable)であることが特徴。

例:「金額」「メールアドレス」「電話番号」は文字列や数値ではなく独自の型を持つ。

なぜ重要か

  • プリミティブ型では表現できない業務上のバリデーション・制約を型に閉じ込められる
  • 同じ String 型でも「氏名」と「メールアドレス」は混同できなくなる
  • 値オブジェクトのメソッドが業務ロジックの置き場所になる

適用場面

  • 「〜は〜文字以内」「〜の形式でなければならない」という制約がある値
  • 計算・変換が生じる値(金額の加算、日付の差分など)
  • 複数フィールドがまとまって一つの概念を成す値(住所 = 都道府県 + 市区町村 + 番地)

関連概念

出典

現場で役立つシステム設計の原則(増田亨)第1〜2章