問題タブ [anemic-domain-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - データストアに面する Web サービスの設計パターン
データ ストアからデータを取得するための API がいくつかある Web サービスを作成しています。高レベルのビューは次のようになります
サービス内のコードをどのように設計するかを考えながら、適切な設計パターンの選択に行き詰まっています
次のレイヤーがあります
サービスによって行われる唯一の「作業」は、入力の検証とデータ ストアからの読み取り、および応答を送信する前のドメイン モデルからトランスポート モデルへの変換です。サービス層で dao を直接使用して、応答を送信することができます。しかし、どのデザインパターンがユースケースに合うか知りたいです。また、これは、ドメイン オブジェクトがビジネス ロジックのない単なる pojo である Anemic ドメインのように見えます。ただし、ストアからのデータがモデルのフィールドに対して有効かどうかを検証する以外に、ビジネス ロジックはありません。このケースを処理するために受け入れられた/一般的な方法を教えていただければ幸いです。
domain-driven-design - 充実への取り組み
質問は、Fowler によるエンタープライズ アプリケーション アーキテクチャのパターンからのものです。
数式を強化するための私の努力 = dxr + c
- d 数のドメイン定義 (クラス)
- r 定義の複製
- c 複雑度定数
しかし、その部分で定義の複製があまりないため、テーブルモジュールパターンが指数関数的に成長することを正当化するのに苦労しています.
なぜテーブルモジュールを拡張しようとする努力が指数関数的に増加するのですか?
参考文献
java - ドメイン駆動設計におけるサービスの役割
私は最近、ドメイン駆動設計 (DDD) が一部のアプリケーション (つまり、UI を介して公開される単純な CRUD 操作よりも複雑なビジネス ロジックが関係するアプリケーション) にとってより良いオプションであることを発見しました。
ドメイン駆動設計 (DDD) に関する以下のサイトを調べました。
https://www.infoq.com/articles/ddd-in-practice
ドメイン駆動設計: ドメイン サービス、アプリケーション サービス
私が結論/理解できなかったのは、次の点です。
(1) ドメイン駆動設計 (DDD) におけるサービスの役割は何ですか? サービス、ドメイン オブジェクト、DAO (Java を使用) の例で説明できますか?
(2) Java を使用してドメイン/ビジネス オブジェクトを作成する必要がある場合、どのような命名規則に従う必要がありますか? CustomerBO、ProductBO などですか?
Java を使用した簡単な例を教えてください。
ドメインオブジェクトはデータを運ぶこと以外は何もしていないため、以下の例(回答)は好きではありませんでした。これはまだ貧血モデルです。domain object 内で何らかの動作を行うことで、明確な例を1つ教えてくれる人はいますか?