私は長い間MVCを使用しており、「Service」レイヤー(たとえばJava Webプロジェクト)について聞いたことがありますが、 実際のアーキテクチャパターンについては、それに関する多くの情報が見つかりません。
MVCSの考え方は、コントローラーに存在する可能性のあるすべてのビジネスロジックをカプセル化するために、コントローラーとモデルの間のサービスレイヤーを設定することです。そうすれば、コントローラーは実行を転送して制御するためだけに存在します。また、コードを複製することなく、多くのコントローラー(WebサイトやWebサービスなど)でサービスを呼び出すことができます。
サービスレイヤーはさまざまな方法で解釈されますが、通常はコアビジネス処理ロジックがあり、MVCアーキテクチャの下にありますが、データアクセスアーキテクチャの上にあります。
たとえば、完全なシステムのレイヤーは次のようになります。
サービス層は、次のことを担当します。
MVCで使用するモデルは、サービスに由来する場合とそうでない場合があります。サービスが提供する結果を取得し、それを操作して、メディアに固有のモデル(Webページなど)にしたい場合があります。
私はこのパターンを他のどこにも参照せずに自分でこのパターンを考えていましたが、Googleを検索してあなたの質問をここで見つけました:)
今日でも、について話したり投稿したりする人はほとんどいません
View-Controllerサービスパターン。
他の人が同じことを考えていることをあなたに知らせるために考えました。上の画像は、それがどうあるべきかを見る方法です。
現在、現在取り組んでいるプロジェクトで使用しています。
上記の画像の各レイヤーを含むモジュールに、独自の自己完結型モジュールがあります。
サービス層は、「クライアント」側のコントローラーがクライアントに対して行うこと、「サービス」がサーバーに対して行うことにおいて、「コネクター」「中間者」「サーバー側コントローラー」です。
言い換えれば、クライアント側の「コントローラー」は「サービス」、つまりサーバー側コントローラーとのみ「通信」します。
コントローラー--->要求と<-----サービス層からの受信
サービス層は、それを必要とするサーバー側の層に情報をフェッチまたは提供します。
サービス自体は何もしませんが、サーバー層を必要なものに接続します。
コードサンプルは次のとおりです。