値オブジェクト(バリューオブジェクト)
同一性を担保する必要がなく、
その属性しか関心の対象とならないのであれば、その要素を値オブジェクトとして分類する(第二部第五章より)
会員(エンティティ)であれば会員名・会員住所・連絡先電話番号・連絡先メールアドレス・・・など・・・会員IDなんかも値オブジェクトですね。
値オブジェクトの特徴など全部書いてありますね。
- 不変なものとして扱うこと
値オブジェクトはいわゆる物なので、一度オブジェクトを作ったら変更しないのが原則。都道府県で言えば、「東京都」は「宮崎県」に変更できないということです。
- 他の値オブジェクトで構成される入り組んだ値オブジェクトにもできる
- 値オブジェクトはエンティティを参照することもできる
- エンティティ(および他の値オブジェクト)の属性としても使用される
- しばしばオブジェクト間のメッセージでパラメータとして渡される
- 概念的な統一体を形成すべき
"概念的な統一体を形成すべき"というのは、「住所」であれば、「都道府県」「市区町村」「その他住所」で構成するということ、「人」オブジェクトの属性であってはいけないということです。
明日は値オブジェクトの設計面を読んでいきます。