エンティティと値オブジェクトは両方ともドメインオブジェクトです。 DDDの2つの区別を知っているのは何ですか?例えば、ドメインオブジェクトをエンティティまたは値オブジェクトとして考えると、よりクリーンなドメインモデルが得られますか?DDD:エンティティと値オブジェクトの違いは何ですか?
6
A
答えて
9
ありがとうございます。特に、タイプを設計して実装する場合は、その違いを理解することが非常に役立ちます。
主な相違点の1つは、エンティティが値オブジェクトとはまったく異なる動作をする必要があるため、同等性を扱うことです。オブジェクトがエンティティであるか値オブジェクトであるかを知ることで、その型に対してどのように等価性を実装するかを知ることができます。これはそれ自体では役立ちますが、そこで停止するわけではありません。
エンティティは(少なくとも概念によって)変更可能なタイプです。エンティティの背後にある全体のアイデアは、それが知られている生涯進行(すなわち、それが作成され、いくつかの変換を受け、アーカイブされ、おそらく最終的に削除される)ドメイン概念を表すということである。たとえ月や年が過ぎても同じ特定の「もの」を表すを表し、途中で状態が変化します。
値オブジェクトは、固有のIDを持たない値を単純に表します。これを行う必要はありませんが、変わっていない型として実装するのは大変です。これは、不変型は定義上スレッドセーフであるため、非常に興味深いです。マルチコア時代に移行するにつれ、オブジェクトを不変型として実装する時期を知ることは非常に貴重です。
等価セマンティクスがよく知られている場合、単体テストにも役立ちます。どちらの場合も、平等は明確に定義されています。私はどの言語を使っているのかわかりませんが、多くの言語(C#、Java、VB.NET)では、デフォルトで参照が決定されます。多くの場合、特に有用ではありません。
関連する問題
- 1. クラス、オブジェクト、エンティティ:違いは何ですか?
- 2. DDD:ステータス - 値オブジェクトまたはエンティティ?
- 3. データベース内のオブジェクトとエンティティの違いは何ですか?
- 4. UMLの参照オブジェクトと値オブジェクトの違いは何ですか?
- 5. 「XML」エンティティと「XMLスキーマ」エンティティの違いは何ですか?
- 6. Schemeでは、数値とオブジェクトの違いは何ですか?
- 7. DDD、集約とエンティティ
- 8. DDD、値オブジェクト、ORM
- 9. DDD集計と値オブジェクト
- 10. フレームとオブジェクトの違いは何ですか?フレームとオブジェクトの違いは何ですか?
- 11. エンティティとexpandoの使用の違いは何ですか?
- 12. DDD:ユーザータイプを値オブジェクトまたはエンティティにする必要がありますか?
- 13. エンティティ、ビジネスオブジェクト、データ転送オブジェクト、およびビジネスモデルオブジェクトの違いは何ですか?
- 14. オブジェクトのプロパティとしてブール値とプリミティブの違いは何ですか?
- 15. JPAエンティティとDDDエンティティは同じクラスであるべきですか?
- 16. オブジェクトとレスポンスリターンを返すことの違いは何ですか?
- 17. OOPでは、オブジェクトとインスタンスの違いは何ですか?
- 18. dbSetとローカルプロパティのエンティティの追加と削除の違いは何ですか?
- 19. S3オブジェクトとObjectSummaryの違いは何ですか? boto3で
- 20. セーブ、進捗、DDD、エンティティ
- 21. DDDのORMは何ですか?
- 22. エンティティ属性値モデルとデータウェアハウスの違い
- 23. C#のオブジェクトとクラスの違いは何ですか?
- 24. Url.parse()オブジェクトのhrefとpathの違いは何ですか?
- 25. Javaのリファレンスとオブジェクトの違いは何ですか?
- 26. C++クラス・ポインタとクラス・オブジェクトの間の違いは何ですか?
- 27. アサートオブジェクト!= nullとAssert.assertNotNull(オブジェクト)の違いは何ですか?
- 28. オブジェクト指向データベースとドキュメントデータベースの違いは何ですか?
- 29. ビューモデルとデータ転送オブジェクトの違いは何ですか?
- 30. オブジェクトと変数の違いは何ですか?