"「実践ドメイン駆動設計」から学ぶDDDの実装入門" 6 章感想 (全14章)
"「実践ドメイン駆動設計」から学ぶDDDの実装入門"
「実践ドメイン駆動設計」から学ぶDDDの実装入門 (CodeZine Digital First)
- 作者: 青木淳夫,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2019/05/31
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る
6章:値オブジェクト〜振る舞いを持つ不変オブジェクト〜
学んだ事
値オブジェクトは6つの特徴がある
- 「domain内の知識を計測・定量化・説明している」
- 「immutable」(変更を管理する必要がない)
- 「概念的な統一体」である。(例:100円通貨は2つのパティ「100」と「円」で意味を持つ)
- 「交換可能性」:値を変更したいときは新オブジェクトで交換可(これが不便でエンティティを採用するのはだめ。エンティティは長期に渡って識別する必要があるときのみ使用!)
- 「等価性」:各属性すべてが同じなら等価
- 「副作用のない関数」:呼び出しは如何なるオブジェクトの状態も変えない
他コンテクストエンティティは、粗結合にするために、値オブジェクトとして新たに用意する。
- JPY,USD等、通貨はenumとして良く扱うが、これは
Value Object
ではなく、Standard Type
とVernon氏は呼んでいる。
分からないこと
- テストを書くとき、値オブジェクトで、
自分自身を引数とする
コピーコンストラクタを用意する。 <=不変性
のテストだろうか。イマイチ具体的例を思いつかない。