DDD:エンティティと値オブジェクト間の差を使用することは何ですか?

StackOverflow https://stackoverflow.com/questions/1785380

質問

エンティティと値オブジェクトは、両方のドメインオブジェクトです。 DDDに2つの間の区別を知っての使用は何ですか? Egはクリーナードメインモデルのエンティティや値オブジェクト里親いずれかとして、ドメインオブジェクトについて考えていますか?

役に立ちましたか?

解決

はい、それはあなたが設計し、あなたのタイプを実装している場合は特に、違いを見分けることができて非常に便利です。

エンティティは、値オブジェクトよりもかなり異なる振る舞いを持っているはずなので、それは、平等に扱うことになると、

主な違いの1つはあります。あなたのオブジェクトは、エンティティやバリューオブジェクトであるかどうかを知ることは、あなたがタイプの等価性を実装する方法を説明します。これは、それ自体では便利ですが、それはそこに停止しません。

エンティティは、(少なくとも概念によって)変更可能なタイプです。エンティティの背後にある全体的なアイデアは、それが既知の寿命進行したドメインの概念を表すことである(それが作成され、すなわち、それは、いくつかの変換を受けることがアーカイブ、おそらく最終的に削除されます)。これは、数ヶ月または数年を渡し、それが道に沿って状態を変更しても、の同じ特定の「もの」の表します。

値は、一方で、単に任意の固有の識別なしの値を表すオブジェクト。あなたがこれを行う必要はありませんが、彼らは不変の型として実装するために途方も自分自身を貸します。任意の不変型が定義スレッドセーフであるので、これは非常に興味深いです。我々はマルチコア時代に移動しているとして、不変のタイプは非常に貴重であるとして、オブジェクトを実装する際に知っています。

平等の意味がよく知られているとき

また、ユニットテストで多くのことができます。どちらの場合も、平等は、明確に定義されています。私はあなたが使用してどのような言語を知らないが、多くの言語で(C#やJava、VB.NET)平等は、多くの場合、特に有用ではありませんデフォルトで参照することによって決定されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top