MVCモデルとは?

beginner

この記事では、初心者向けの「MVCモデル」の説明と「MVCフレームワーク」の紹介をします。

MVCモデルとは何か?

MVCは「Model–View–Controller」を頭文字をとった言葉で、アプリケーションの開発設計のパターンの一つです。

MVCモデルとは、ウェブサイトやアプリの開発の設計が「Model」「View」「Controller」の3つの基本的な構成パターンになっていることを指しています。

なぜMVCモデルを使うのか?

MVCモデルは「ユーザーが入力する部分」と「内部のデータのロジック」を分離するために用いられます。

その方法は、アプリケーションを「Model(モデル)」「View(ビュー)」「Controller(コントローラー)」の三つの構成に分割し、相互に接続することで実現します。

では、わざわざアプリケーションの設計にMVCモデルを採用して、三つに構成を分けるメリットはなんなのでしょうか?

それは、ユーザーが操作する部分と内部のデータの扱いや管理を分けて設計をクリアにするためです。

MVCが生まれた経緯

MVCモデル生まれる前は、アプリケーションも元々はMVCの全ての要素はひとまとめになった状態で作っていました。

ただこの開発方法だと、「デザイン部分の開発(ユーザー側)」と「サーバーやデータの管理部分(内部のロジック)」がごちゃ混ぜになってしまうので、デザイナーとプログラマーの仕事が複雑になってしまい大変でした。

そのため、デザイナーはデザイン部分に、プログラマーはロジックの部分に集中できるよう、仕事を分けやすくするためにMVCモデルという考えが生まれたということです。

ただ、そもそも普通のウェブアプリは、

  1. ユーザーが何かを入力
  2. そのデータを裏側で処理
  3. 画面に反映させる

という仕組みの繰り返しです。

この一連の役割をそれぞれ分けた構成にした方が開発もしやすいのは感覚的にもしっくりきますね。

そのため、デザインやロジックも一人で開発するような開発でもこのMVCモデルを多く採用しています。

MVCの構成

「モデル」「ビュー」「コントローラー」のそれぞれの役割をウィキペディアの引用し、簡潔に説明します。

モデル

そのアプリケーションが扱う領域のデータと手続き(ビジネスロジック – ショッピングの合計額や送料を計算するなど)を表現する要素である。また、データの変更をビューに通知するのもモデルの責任である(モデルの変更を通知するのにObserver パターンが用いられることもある)。

 簡単にいうと、データーベースのやり取りやデータの計算などを担当します。

ビュー

モデルのデータを取り出してユーザが見るのに適した形で表示する要素である。すなわち、UIへの出力を担当する。例えば、ウェブアプリケーションではHTML文書を生成して動的にデータを表示するためのコードなどにあたる。GUIにおいては通常、階層構造を成す。

簡単にいうと、ユーザーに見える画面の部分を担当します。 

コントローラー

ユーザからの入力(通常イベントとして通知される)をモデルへのメッセージへと変換してモデルに伝える要素である。すなわち、UIからの入力を担当する。モデルに変更を引き起こす場合もあるが、直接に描画を行ったり、モデルの内部データを直接操作したりはしない。

簡単にいうと、ユーザーから受けた情報をコントローラーに渡したり、コントローラーから受けた指示をビューに伝えたりします。

MVCフレームワーク

MVCモデルを使ったフレームワークを「MVCフレームワーク」と呼んだりします。

有名なものでは

  • PHP言語では、「CakePHP」
  • Ruby言語では「Ruby on Rails」
  • JavaScript言語では「Angular.js」

などが有名です。このように聞くと、かなり私たちの身近なフレームワークに採用されていることがわかっていただけると思います。

まとめ

 特にRuby on Railsでフレームワークを学習する初心者の方は多いと思います。

Ruby on Railsを学習する中でMVCモデルの話は出てくると思いますが、Ruby on Railsのおかげで、アプリケーションの開発の構成が、機能ごとにうまく分けて設計されているということを知っておいてください。

【お知らせ】

個人開発に関するノウハウを詰め込んだ一冊『個人開発で毎月1万円を稼ぐコツ』を書きました!

個人開発を始めたけど、ユーザーに使ってもらえずに困っている方向けに書きました。ぜひ読んでみてください。

beginner
スポンサーリンク
katonobo

コメント

タイトルとURLをコピーしました