サービス層は外層か?そうでない場合、それはどのレイヤーの下にありますか?
返信してください
ありがとう
システムはさまざまな方法で編成できます。階層化されたアーキテクチャは 1 つだけではありません。「外側」レイヤーという用語を使用したことはありません。論理アーキテクチャ、物理アーキテクチャなど、複数の方法で同じシステムを分析することも合理的です。
議論中のアーキテクチャで選択したレイヤーがわかっている場合にのみ、質問に答えることができます。そうすれば、サービスがどこにあるかを理解できるはずです。あなたは「外側」についてのみ私たちに話してくれました。
私は通常、プレゼンテーション、ビジネスロジック、永続性について考えています。その場合、サービスはビジネス ロジック層にあります。
サービスをシステムのパブリック インターフェースと見なすことは非常に合理的であり、ある意味でそれらは「外側の」層にあると言えます。
コメントに応じて追加:
これに対する簡単な答えはありません。それはすべて、「サービス」が何を意味するか、およびレイヤーが何をしているかに依存します。具体的な例を見てみましょう。UI で請求書の詳細を表示したいとします。サービスの作成を選択する場合があります
InvoiceDto getInvoiceDetails(int invoiceNumber)
このサービスの実装がビジネス ロジック層にあることは明らかです。また、インターフェイスは、レイヤー間の通信方法に応じて、単純なライブラリまたは Web サービスになる場合があります。
次に、そのサービスを顧客に公開して、顧客のアプリがインターネット経由でサービスを呼び出せるようにすることにしました。おそらくRESTサービスを公開するコードがWeb層にあるでしょう
http://dave.org/service/invoice/nnnn
明らかに、Web レイヤーで実行されているアダプター コードが少しあり、そこで認証などを管理できます。しかし、サービスはどこにあるのでしょうか。そのアダプターだけですか?それはビジネスロジックですか?両方ですか?
私の考えでは、実際のサービスはビジネス層で実行されるロジックであり、残りは単なる配管です。