エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【ドメイン駆動設計】なぜ値オブジェクトそのものを比較できるようにしなければならないのか? - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【ドメイン駆動設計】なぜ値オブジェクトそのものを比較できるようにしなければならないのか? - Qiita
値オブジェクトは以下の3つの要素を持ったオブジェクトだとされている。 1)不変である(一度インスタンス... 値オブジェクトは以下の3つの要素を持ったオブジェクトだとされている。 1)不変である(一度インスタンスが作られたら、それが保有する属性の値は変化してはいけない) 2)交換が可能である(再代入=交換によってのみ値を変更することができる) 3)等価性によって比較される このうち、3)は絶対に必要なんだろうか? 例えば、Date型にかなり近い、YearMonth(年と月をもったオブジェクト)を定義してみよう。 class YearMonth attr_reader :date def initialize(year, month) @date = Date.new(year, month, 1) end end 一応値オブジェクトとして定義しているものの、「日付が1日のDate型オブジェクト」」としても外部から認識できる。なら、YearMonthそのものを比較できなくても、保有しているDate型