永続性無知は、単一の責任原則のアプリケーションです。実際には、ドメインオブジェクト(DO)に永続性に関連するコードを含めるべきではなく、ドメインロジックのみを含める必要があります。
a)これは、下位層(つまり、永続層)に接続するコードが、ビジネスロジック層の他のクラス(OC)のドメインモデルの外側にあることを意味すると思いますか?
b)の下で、私の仮定した場合)正しいこと、そしてDOたとえば、Customer
、決してなどの方法が含まれていませんGetCustomers
かGetCustomerByID
?
c)a)およびb)の下での私の仮定が正しく、Customer
ドメインオブジェクトがそのプロパティの一部に遅延読み込みを使用すると仮定すると、ある時点でCustomer
内部ロジックがOCに連絡し、次にOCが遅延データを取得する必要があります。しかし、遅延データを受け取るためにOCCustomer
に連絡する必要がある場合、ドメインオブジェクトに永続性に関連するロジックが含まれていないことを主張することはできません。
ありがとうございました
jkohlheppへの返信
1)クラスはビジネスロジック層に含まれているOrderProvider
と思いCustomerProvider
ますか?
2)b)の下での私の仮定が正しいというあなたの返事から集めますか?
3)
...いくつかの非公開注文フィールドが入力されているか、それがヌルであるかを確認します。nullの場合...
しかし、私が知る限り、ドメインコードがプライベートorder
フィールドに入力されているかどうかを確認する必要があるとすぐに、もしそうでない場合はOrderProviderに問い合わせると、すでにPIの原則に違反していますか?!