0

POCO クラスはValidate()メソッドなどのドメイン駆動設計で振る舞いを持っていますが、本当ですか?

4

3 に答える 3

5

はい-「エンティティ」はデータとオブジェクトの動作をカプセル化します-したがって、それはもはや単純な古いコントラクトオブジェクトではなく、ドメインオブジェクトです。

それを考える 1 つの方法は、他のコードのどれもオブジェクトのプロパティを見ることができないと想像することです。

if (myDomainObject.Name != null) ...

彼らは電話しなければなりません

if (myDomainObject.IsValid()) ...

それを有効にするものに関するルールを変更する場合、変更はドメイン オブジェクトでのみ行う必要があります。これは、それを使用するコードにロジックが外部に漏れるのを防いでいるためです。

于 2012-11-15T22:31:12.637 に答える
4

はい、ドメイン駆動設計のドメイン モデルのクラスは、動作に焦点を当てる必要があります。

于 2012-11-15T22:27:55.207 に答える
2

いいえ。 のようなメソッドはありませんValidate()

DDD エンティティは常に有効な状態である必要があります。そのため、パブリック プロパティ セッターではなく、クラスで動作 (メソッド) を使用します。

このアプローチにより、POCO に依存関係が生じますか?

いいえ。通常、すべてが DDD モデルに依存しており、その逆はありません。

于 2012-11-16T10:04:50.523 に答える