1. ホーム
  2. model-view-controller

MVCS - モデル・ビュー・コントローラ・サービス

2023-09-17 23:50:29

質問

MVCを長く使っていて、"のことを聞きました。 サービス "層(例えばJavaのWebプロジェクトで)について聞いたことがありますが、私は、それが 本当のアーキテクチャパターン それについて多くの情報を見つけることができないので。

MVCSの考え方は コントローラとモデルの間にサービス層 であり、コントローラにありうる全てのビジネスロジックをカプセル化することです。そうすることで、コントローラは、実行を転送し、制御するためだけに存在することになります。そして、多くのコントローラ(例えば、ウェブサイトとウェブサービス)で、コードを重複させることなく、サービスを呼び出すことができます。

どのように解決するのですか?

サービス層はさまざまに解釈できますが、通常は中核となるビジネス処理ロジックを持つ場所であり、MVCアーキテクチャの下、データアクセスアーキテクチャの上に位置します。

例えば、完全なシステムの層は次のようになります。

  1. ビュー層。MVCフレームワークと選択したコード
  2. サービスレイヤー。コントローラは、モデルの取得や更新、その他のリクエストのために、このレイヤーのオブジェクトを呼び出します。
  3. データアクセスオブジェクト。サービス層が必要なデータを取得・更新するために呼び出す抽象化されたオブジェクトです。この層は通常、データベースやその他のシステム(例:LDAPサーバー、ウェブサービス、NoSqlタイプのDB)を呼び出します。

サービス層は次に責任を負います。

  • 様々なデータソース(またはデータアクセスオブジェクト)から「モデル」を取得し、作成する。
  • 様々なリポジトリ/リソース間で値を更新する。
  • アプリケーション固有のロジックや操作の実行など。

MVCで使用するモデルは、サービスから来る場合もありますし、そうでない場合もあります。サービスが提供する結果を、あなたのメディア(例:ウェブページ)により特化したモデルに操作したいと思うかもしれません。