MVCS - モデル・ビュー・コントローラ・サービス
2023-09-17 23:50:29
質問
MVCを長く使っていて、"のことを聞きました。 サービス "層(例えばJavaのWebプロジェクトで)について聞いたことがありますが、私は、それが 本当のアーキテクチャパターン それについて多くの情報を見つけることができないので。
MVCSの考え方は コントローラとモデルの間にサービス層 であり、コントローラにありうる全てのビジネスロジックをカプセル化することです。そうすることで、コントローラは、実行を転送し、制御するためだけに存在することになります。そして、多くのコントローラ(例えば、ウェブサイトとウェブサービス)で、コードを重複させることなく、サービスを呼び出すことができます。
どのように解決するのですか?
サービス層はさまざまに解釈できますが、通常は中核となるビジネス処理ロジックを持つ場所であり、MVCアーキテクチャの下、データアクセスアーキテクチャの上に位置します。
例えば、完全なシステムの層は次のようになります。
- ビュー層。MVCフレームワークと選択したコード
- サービスレイヤー。コントローラは、モデルの取得や更新、その他のリクエストのために、このレイヤーのオブジェクトを呼び出します。
- データアクセスオブジェクト。サービス層が必要なデータを取得・更新するために呼び出す抽象化されたオブジェクトです。この層は通常、データベースやその他のシステム(例:LDAPサーバー、ウェブサービス、NoSqlタイプのDB)を呼び出します。
サービス層は次に責任を負います。
- 様々なデータソース(またはデータアクセスオブジェクト)から「モデル」を取得し、作成する。
- 様々なリポジトリ/リソース間で値を更新する。
- アプリケーション固有のロジックや操作の実行など。
MVCで使用するモデルは、サービスから来る場合もありますし、そうでない場合もあります。サービスが提供する結果を、あなたのメディア(例:ウェブページ)により特化したモデルに操作したいと思うかもしれません。
関連
-
[解決済み] SOFEAとは?
-
[解決済み] MVCとMVVMの違いは何ですか?[クローズド]
-
[解決済み] モデルデータや振る舞いをどこに置くか?[tl; dr; サービスを利用する]
-
[解決済み】DTO(Data Transfer Object)とは何ですか?)
-
[解決済み】サービスは常にDTOを返すべきですか、それともドメインモデルも返すことができますか?
-
[解決済み】ビューで現在のコントローラの名前を取得することはできますか?
-
[解決済み] MVCとN層アーキテクチャの比較
-
[解決済み] Qtはなぜモデル/ビューという用語を間違って使っているのか?
-
[解決済み] 太ったモデルと痩せたコントローラーは、まるで神モデルを作っているようだ。
-
[解決済み] 差動実行の仕組みを教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン