10

ここに画像の説明を入力

ドメイン層は、データ転送オブジェクト (DTO) を介して他の層と通信しています。DTOについて混乱しました。

DTO 1 は、ドメインとプレゼンテーション層の間にあります。

DTO 2 は、ドメインとデータ層の間にあります。

レイヤー間に 2 つの異なる DTO オブジェクトを作成するか、DTO を 1 つだけ作成する必要がありますか。プロの道とは?

4

4 に答える 4

6

すべてのレイヤーを見てみましょう:

  • データ アクセス層 (DAL)。データベース(DB)からデータを取得するために使用されます。

Domain Entities通常、ドメイン層について知っています。

DAL は、Domain Entitiesまたはを返すことができますDTOs (DB oriented data structures)。これらの DTO またはドメイン エンティティview modelsは、必要に応じてプレゼンテーション層 ( ) の DTO を構築するために使用できます。

通常、ドメイン エンティティは重く、データ マッパーまたは任意の ORM が必要です。私は で作業しDomain Entities、それらをマッピングし、他の DTO を避けることを好みます。それ以外の場合は、DTO もマップする必要があります。

  • ドメイン層 (ドメイン モデル) . ビジネス エンティティとその動作、ビジネス ルール、純粋なビジネス ロジックを表すために使用されます。

ドメイン層は、エンティティがどこかに (DB などに) 格納されている方法について何も知らないはずです。Introduce Parameter Objectのリファクタリングの結果である独自の DTO を持つことができます。

  • プレゼンテーション層 (UI)。ユーザーにUIを提示するために使用されます。

Data Access LayerDB からデータをロードDomain Layerし、そのビジネス ロジックにアクセスしようとしていることを認識している必要があります。

独自の DTO (ビュー モデル) を持つことができます。ビュー モデルは、ドメイン エンティティまたは DB に適した DTO のユーザー インターフェイス フレンドリーな表現です。について知るのはプレゼンテーション層の責任ですview models

プレゼンテーションを 1 つだけにする場合は、アプリケーション インフラストラクチャをプレゼンテーション層の一部として実装することもできますが、通常は別のアプリケーション層です。

ここに画像の説明を入力

于 2013-11-04T21:40:49.877 に答える