0

ddd のアプリケーション層はモデルを持つことができますか?

より明確に言うとcredential、システム内に、ドメイン層の外側にある認証プロセスに関連するエンティティがあります。このエンティティはどこにあるのでしょうか? 私はドメイン駆動設計の初心者です。

4

1 に答える 1

2

アプリケーション層は、独自のデータ表現を使用できます。これをユーザー インターフェイスに接続すると、アプリケーション層はドメイン オブジェクトを表示可能なデータに変換する必要があります。

しかし、おそらく「ビュー モデル」という意味以外では、これを「モデル」とは呼びません。

詳細がなければ、これ以上有用なことは言い難いので、例を挙げて統合の問題に答えようとします。

Vaughn Vernon のサンプルアプリ

Vernon のサンプル アプリケーションを見ると、使用するアプリケーションから認証サービスを分離することができます。Vernon は、このために 3 つのスタンドアロン Java アプリケーションをモデル化しています。

これで、すべての認証を提供する IdentityAccess サービスができました。Tenantそこでエンティティを作成できます。次に、独自の内部表現を使用するコラボレーション アプリ (フォーラムなど) がありますTenant

そのため、クライアント アプリは を取得しTenantIdて独自のTenantオブジェクトを作成し、フォーラム スレッドをテナントに関連付けます。Tenants は、このアプリ内から変更または永続化されず、使用されるだけです。

ドメインオブジェクトをその外側のものに結び付ける

あなたの主張はもっと単純かもしれません。エンティティ (ドメイン内) とその外部にいくつかの認証ロジックがある場合、「認証者」にドメインの特殊なインターフェイスを実装させ、本当に必要な場合はCredentialそれをドメイン オブジェクトに挿入します。(これがポートとアダプターのアプローチです。両側でインターフェイスを指定し、具体的な実装を待つことができます。もう一方の側でインターフェイスを実装し、オブジェクトを再び注入します。)

ドメイン内から認証ロジックにアクセスする必要はないと思いますが、これを判断するにはさらにコードを確認する必要があります。

Vernon はドメイン内で AuthenticationService を使用して、間違ったログイン詳細を処理します。

于 2015-03-26T13:17:09.537 に答える