0

DDD に基づいてサーバー側アプリケーションを開発しています。

私のアプリケーション サービス (wcf レイヤー) には、クライアントから XML を受け取るメソッドがあります。この XML を処理して、最終的にオブジェクトに変換する必要があります。

このような場合、データ変換ロジックを配置するのに最適な場所はどこですか? ドメインモデルの内部?

例:

void OnRequestArrived(string xml)
{
   ItemRequest request = ItemRequest.New(xml);
}

または別のドメインサービスで?

void OnRequestArrived(string xml)
{
  ItemRequest request = _mappingService.Map(xml);
}

ItemRequest オブジェクトは、ビジネス フローのメイン ドメイン モデルです。

ありがとう

4

1 に答える 1

0

この責任は、WCF サービスに属します。DDD の用語で言えば、これは腐敗防止レイヤーです。外部モデルを手元のドメイン モデルにマップします。ドメイン モデルは、外部サービスから可能な限り保護する必要があります。

この単一の WCF サービスを 2 つ (アプリケーション サービスと、アプリケーション サービスを WCF フレームワークに適合させるWCF固有のアダプター) に分割すると便利な場合があります。これはHexagonal アーキテクチャに基づいています。アプリケーション サービスは、WCF またはシリアル化形式について何も認識しません。WCF アダプター サービスは、これとその他のシリアル化の問題を処理します。これが役立つ理由は 2 つあります。まず、アプリケーション サービスをクリーンに保ち、ドメイン ユース ケースを実装するためのドメイン オブジェクト、リポジトリ、およびその他のサービスのオーケストレーションという責任に集中します。次に、同じアプリケーション サービスを異なるアダプタから呼び出すことができます。

于 2013-04-01T00:11:50.173 に答える