MVCとは?
Moderl(モデル)、View(ビュー)、Controller(コントローラ)の頭文字をとった略語。
ソフトウェア設計の考え方のひとつ。
モデルとビューとコントローラの3つに分けて作ることで、色々と良いことがある。
iPhoneアプリ開発をするなら、知っておいた方がいい。
教材
こちらのページ
知識ゼロからはじめるiPhoneアプリ開発 – A Day In The Life
この記事
※記事を全て読むには、日経BPパスポートへのユーザー登録(無料)が必要です。
まつもと直伝 プログラミングのオキテ 第20回 MVCとRuby on Rails:ITpro
Model
アプリで扱うデータを定義・構成する部分。
例えば項目とデータのセット。
名前:あおのうま、性別:男、年齢:おっさん、みたいな感じ。
View
アプリで扱うデータを「どう見せるか」を決める部分。
例えば箇条書き。
- 名前:あおのうま
- 性別:男
- 年齢:おっさん
或いは表形式。
名前 | 性別 | 年齢 |
---|---|---|
あおのうま | 男 | おっさん |
Controller
ユーザーや他のプログラムからの入力を受けて、モデルやビューを操作する部分。
例えば上の表で「あおのうま」の部分をクリックすると、いななきます。(要JavaScript)
で、MVCで考えると何が良いの?
ひとことで言うと、これ。
専門職に任せる。
MVCは、モデル、ビュー、コントローラ、が、それぞれ自分専門の仕事に集中する形。
これによって、色々な場合に融通が利きやすいアプリができます。
「専門の仕事に集中」とか言うと、
カチコチで融通が利かない印象を受けるかもしれません。
しかし、そんなことはないのです。
例えばモデル。
名前が”あおのうま”から”あかのうま”に変わっても、ビューは全く気にしません。
「モデルのデータは、ここにこう見せる」というのがビューの仕事ですので、
変更はモデルの内容だけで済みます。
つまり、表示に関してはビューに「お任せ」ということになります。
動作に関しても同様です。
モデルのデータ部分がどうであれ、
「表をクリックするとメッセージが出る」という内容に変わりはありません。
__表示されるメッセージ内容はデータにあたりますので、モデルの管轄ですが__
この様に、それぞれが専門職であることで、「お任せするね!」が出来るわけです。
これにより、いちいち表示や動作のプログラムを作らずに済み、
開発の手間もアプリ自体のサイズも小さく済みます。
ちょっと補足(2011.09.02)
ここだけの話、MVCで設計しても「開発の手間」は小さくなりません。
むしろ、しっかりと設計しないとならない分、大変かも。
実は、MVCの構造が開発面で活きてくるのは、プログラムの更新時だったりします。
構造がはっきりと分業されているので、更新時の変更箇所が最小限で済むのです。
先の例にもありましたね。
データであるモデル部分の内容を変えるだけで済んでいます。
もちろん、それも設計がちゃんとしていればの話になるわけですが。
それ違うくね?とかあったら教えて下さると嬉し泣きます
だいたいこんな感じで私のMVCに関する理解内容を記事にしてみました。
もし「それ違うよ!」とか「このこと忘れているよ!」とかあったら、
コメントとか頂けると、すげー嬉しいです。
よろしくお願いします。