LoginSignup
124
131

More than 5 years have passed since last update.

MVC とは何かを 1 から学ぶ

Last updated at Posted at 2017-05-20

SpringMVC を使ってプログラムを書く中で、"そもそも MVC とは何か" "MVC の利点と問題点は何か" "では問題に対してどうすれば良いのか" をきちんと整理しておこうと思い、書き起こしてみました。

今回はまず MVC とは何かという全体概要、 M/V/C それぞれの役割、MVC の利点と問題点について記載しています。

認識違い等あれば、是非ご指摘下さい。

MVC とは

UI を持つアプリケーションアーキテクチャの一つ。
Model / View / Controller の 3 部プログラム構造。

MVC それぞれの役割

M : Model

  • ビジネスロジックの実行
  • アプリケーションが扱うデータの操作
  • 業務屋さん

V : View

  • ユーザからの画面入力
  • ユーザへの結果出力
  • Model のデータの状態を参照して画面に表示
  • レンダリング人

C : Controller

  • 入力情報を受取る
  • 処理を行う Model と結果を返す View を選定
  • 司令塔

イメージ図
SpringMVC.png

MVC の利点

  • ビジネスロジック部分 (M)、画面表示部分 (V)、入力に応じてこれらを操作する部分 (C) と役割分担することで、アプリケーション開発も効率的に分業出来る
  • M、V、C の役割分担によりプログラムの独立性が高くなり、仕様変更に柔軟対応出来る

MVC の問題点

  • 業務で扱うデータ要件が複雑になればなるほど、Model が肥大化していく
  • 入力に応じた出力要件が複雑になればなるほど、Controller と View の依存性が高くなる

例) View 上の Link 選択結果( = ユーザの入力内容)に応じる Controller が変わり、各処理結果に対応する View が更に変わる、、、が繰り返される場合

ControllerとView.png


次回は、上記に挙げた MVC の問題点に対してどういう対処があるか? について纏めたいと思います。

124
131
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
124
131