何故フレームワークを使うのか(その 2)

前回 MVC モデルという新しい用語が出てきたので解説をしたいと思います。

MVC」とは何ぞや ?

MVC とは Model, View, Controller の頭文字をとったもので、グラフィカルユーザーインターフェースを提供するアプリケーションの開発において基本となるものです。

Model

Model は、アプリケーションにおいて取り扱うデータの形式とそれに対する操作(ビジネスロジック)を提供するものです。

View

View はユーザーインターフェースの外観です。

Controller

Controller はアプリケーションの中枢であり、View から入力された情報に基づいて Model のビジネスロジックを呼び出し、結果を View としてユーザーに返します。

以前「三層構造」のお話をしたのを覚えておいででしょうか。それに当てはめると、データベースサーバに格納されているデータの形式とそれに対する操作を記述するのが Model、クライアントのブラウザに(HTML 形式で)View が提供され、アプリケーションサーバ上で Controller がそれらの仲介をすることになります。

Java における MVC

Java においては、古くはすべての処理を Servlet が受け持っていました。しかしこれではプログラマへの負担が大きいということから Servlet は Controller に専念し、Model として Java Beans を、View として JSP*1 を用意することで、フレームワークを使わずとも一応は MVC の形をとることができるようになりました。

しかし JSP はやはり Java プログラミングの知識がそれなりになければ読み書きできないため、完全な分業を実現するにはまだまだ道具が不足していると言わざるを得ない状況でした。そんな中生まれたのが Struts をはじめとする Java フレームワークなのです。

しかし、いくらフレームワークが便利だからと言って、それだけを覚えれば良いというものではありません。他の誰かが作ったアプリケーションははフレームワークを使用していない、従前の ServletJSP によって構築されているかもしれないのです。そんな事情もあってか、いまだに書店では ServletJSP による Web アプリケーションの参考書がたくさん並んでいます。技術が進歩し、どんなに楽ができるようになったとしても、基礎はおろそかにしてはいけないということなのです。

そんな流れで、次回はその従前の ServletJSP による簡単な Web アプリケーションの構築について語ってみたいと思います。ではまたお会いしましょう。

*1:ただし実行の際には Servlet に変換されてから実行される。