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