をより堅牢にするために をpersistent layer
から分離するという概念があります。これは、 でのリポジトリの実際の実装には依存せず、リポジトリ インターフェイスのみに依存します。domain layer
domain layer
persistence layer
これは、次のことを意味します。
IPersonRepository {...} // in domain layer
PersonCassandraRepository implements IPersonRepository {...} // in persistence layer
Person (Aggregate Root) {...}
さて、どうPerson
ですか?
ではanemic-domain-model
、次のことができます。
IPerson {...} // in domain layer
Person implements IPerson {...} // in persistence layer
Person を永続化レイヤーに入れるのはなぜですか?
実装固有のコードが含まれているためです。
たとえば、JPA 関連のアノテーションが含まれる場合があり、リポジトリと同様に、ドメイン レイヤーにデータストア固有の実装は必要ありません。
Person にはドメインロジックが含まれていないため、anemic-domain-modelで上記を実行できます。つまり、 Person をpersistene レイヤーに配置できます。貧血ドメイン モデル
で
は、データは動作から分離されているため、Person の動作は別のサービスによって行われ、Person 自体には書き込まれません。
この場合、 Person にはドメイン固有のロジックが含まれているため、rich-domain-modelでこのレイヤー分離を行うことはできません。
リッチ ドメイン モデルのアプリケーション内で、この層の分離をどのように行いますか?
あるいは必要ないと思っているのかもしれません。