私が見た DCI の例はすべて、情報の最終的な所有者としてのオブジェクトに基づいているようで、トランザクション境界はメソッド内で定義されています。
ある種の永続層がある永続アプリケーションの例を見たいと思います。つまり、基礎となる永続ストレージの複製オブジェクトコピーが存在する可能性があり、オブジェクトへの変更がコピーへの変更であり、後で変更される固執する。DCI はそのモデルでまったく機能しますか?
私が見た DCI の例はすべて、情報の最終的な所有者としてのオブジェクトに基づいているようで、トランザクション境界はメソッド内で定義されています。
ある種の永続層がある永続アプリケーションの例を見たいと思います。つまり、基礎となる永続ストレージの複製オブジェクトコピーが存在する可能性があり、オブジェクトへの変更がコピーへの変更であり、後で変更される固執する。DCI はそのモデルでまったく機能しますか?
DCI はパラダイムであり、永続性を備えた他のパラダイムを使用してアプリケーションを構築できるように (永続性は副作用であるため、純粋な FP を除く)、DCI を使用することもできます。これはパラダイムに関係なく、パラダイムの理解とは無関係であるため、DCI の例では言及されていません。(つまり、あなたがこの質問をするのは初めてではなく、最後でもないと確信しています)。
データを永続化するという懸念は、一般に DCI と直交しています。DCI はデザインを分割しようとします。
1 つ目はドメイン モデルで、2 つ目はシステムの機能です。「システムとは何か」がメモリ、フラットファイル、または DB に保持されるかどうかはもちろん重要ですが、別の懸念事項であり、通常は制限付き OOを使用して実装されます
DCI は永続性にはあまり関心がありません。
http://blog.maxant.co.uk/pebble/files/dci_java_example_for_object_composition_google_group_201010052226.zipに、永続エンティティ用のJPA(ORM)を組み込んだJavaの例を投稿しました。
これは、www.maxant.co.uk/whitepapers.jspにまもなく投稿されるホワイトペーパーの一部です。
DCIがアプリサーバーに統合されていることを示す別の例は、その論文にあります。お役に立てば幸いです。