0

私は現在、次のレイヤーを持つnレイヤーアーキテクチャに取り組んでいます

  • 表示(ASP.net Webアプリ)
  • マネージャー(オーケストレーションサービス)
  • サービス(ビジネスレイヤーは作業単位を使用します)
  • リポジトリ(データアクセス)

今のところ、マネージャーは1つ以上のサービスを呼び出して、データへのアクセス、データの保存、またはその他のビジネスを行っています。サービスは、トランザクション内でサービスが使用されるように、実装された作業単位とリポジトリを使用しています。

これで、トランザクション内ですべて一緒に機能するさまざまなサービスを呼び出す必要があるマネージャーができました。

私の意見では、サービスはリポジトリを使用してデータベースにアクセスしているため、作業ユニットの呼び出しはサービスに保持する必要があります。作業単位の呼び出しをマネージャーに移動すると、設計が壊れます。Managerには、リポジトリへの参照が必要です。

アクセスを設計する方法についてアドバイスはありますか?

ありがとう!

4

1 に答える 1

2

作業単位はデータ アクセス パターンではありません。これは論理トランザクションの表現です = ビジネス ロジックの一部であり、マネージャーが複数のサービスからの論理トランザクションを調整しているため、マネージャーに属します。

マネージャーはファサード (またはトップ レベル サービスと呼びましょう) です。これは依然としてビジネス ロジックであり、論理操作に複数の低レベル サービスが必要な場合、それらはすべて 1 つの作業単位で実行する必要があります。

于 2012-08-08T14:13:57.823 に答える