MENU

MVCパターンの概要

目次

Model – View – Controller architecture

Model – View – Controller (MVC) architecutre とは、ソフトウェアのデザインパターンの一つです。

MVC architectureでは、アプリケーションを、3つの要素 (Model, View, Controller) に分解します。
それぞれの要素の役割は以下のようになります。

geegsforgeeks, “MVC Framework Introduction”, https://www.geeksforgeeks.org/mvc-framework-introduction/
Model

コントローラー – データベース間のデータの受け渡しを担当
ただデータを受け渡すだけでなく、データの演算 (例、データAとデータBの値を足す) も担当する。

View

ユーザーインターフェース (UI) を担当する。

Controller

ユーザーからのリクエストの受け取り ~ レスポンスの生成・送信までの流れの処理を担当する。
リクエストを受け、目的の画面を用意し、必要な場合はデータを用意するようModelに指示し、画面に添えてレスポンスとして返す。

参考文献

MVC architectureの特徴

1. コードを理解しやすいこと

それぞれのクラスやファイルが、1つのテーブルに対するデータ もしくは 1画面を担当しているため、そのコードが何をしているのか理解しやすくなります。コードが理解しやすくなると、レビューにかける時間が減る新たな機能を追加しやすいバグが発生した際にデバッグしやすい、といった恩恵を得られます。

2. 同時に作業しやすいこと

1つのアプリケーションをMVCに分けることによって、プログラマーはそれぞれの得意な部分を同時にコーディングすることができます。

3. 再利用可能であること

どのようなアプリケーションにも共通するような画面・データはあると思います。
例えば、ログインユーザーの設定をする画面です。ログインユーザーの情報を設定する画面では、メールアドレスやパスワードの変更、ユーザーの削除といった機能が存在します。

これらを毎回1から書くのではなく、似たようなアプリケーションから持ってきたり、それに対して少し付け加える、といったことがしやすくなります

僕にはあまりピンときませんでしたが、その他にも単体テストのしやすさが挙げられていました。

参考文献

まとめ

  • MVC architecture とは、ソフトウェアのデザインパターンの1つで、アプリケーションをModel, View, Controllerの3つの要素に分解します。
  • アプリケーションを3つの要素に分解することによって、可読性や複数人での開発効率の向上、そして、ファイルの再利用が可能になります。

MVC以外のデザインパターン

MVC以外にも、こんなデザインパターンがあります。

Layered Architecture

ソフトウェアを複数の層から構成されるものとして見る。
シンプルだが、拡張性に難がある。

Model-View-ViewModel (MVVM)

UI (ユーザーインターフェース) から、アプリケーションのビジネスロジックとプレゼンテーションロジック (画面に表示するための処理) を分けることができる。Windows Presentation Foundation や Xamarin、Angular等のフレームワークで採用されている。

参考文献
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次