0
こんにちは。 私はMartin FowlerのPoEAを読んでいます。 Data Mapperパターンは、このようにDomainオブジェクトと連携しています.DALであるData MapperがDomainを参照していることを意味します。私はDALにそのような参照があってはならないと考えました。どう思いますか?Data Mapperはドメインモデルを参照する必要がありますか?
こんにちは。 私はMartin FowlerのPoEAを読んでいます。 Data Mapperパターンは、このようにDomainオブジェクトと連携しています.DALであるData MapperがDomainを参照していることを意味します。私はDALにそのような参照があってはならないと考えました。どう思いますか?Data Mapperはドメインモデルを参照する必要がありますか?
プレゼンテーションレイヤーやデータアクセスレイヤーを含むどのレイヤーでも、ドメインモデルを参照できます。ただし、ドメインモデルはこれらのレイヤーを参照すべきではないので、代わりのインターフェイスや永続化戦略をサポートするために潜在的に再利用される可能性があります。
答えをいただきありがとうございます。ドメインがDALを参照していない場合は、どのように使用するのですか?たぶんDALを直接参照する必要はないかもしれませんが、データソースを操作するためのインターフェイスが必要です。 – Danil
DALは、ドメインではなく永続ドメインオブジェクトに関係している必要があります。そのため、ドメインオブジェクトの1つがCustomerエンティティの場合、DALではCustomerエンティティを読み込んで保存するメソッドを持つCustomerRepositoryのようなものがあります。私はこのロジックがドメイン自体に組み込まれているのを見てきました。だから、これがプロジェクトを構成する真の方法だとは言いませんが、それは私の方がきれいです。 – newdayrising
ええと、リポジトリはドメインオブジェクトで動作するため、ドメインロジックであるドメインオブジェクトのメソッドにアクセスできます。もちろん、リポジトリでこれらのメソッドを使用してはならないことは明らかですが、カプセル化はありません。たぶんDALのビジネスロジックをカプセル化するためにリポジトリのインターフェイスを使用する必要がありますか? – Danil