🙄

いまさら聞けないMVC

2024/01/16に公開

MVCについて、Railsで触っていた際に何げなく作成してはいたものの、細かい説明を求められた際に不安に感じたので改めてその特徴等をメモしていきます。

MVCとは

MVCは、Model、View、Controllerのこといい、ソフトウェア開発における一般的な設計パターンで、アプリケーションを3つの主要なコンポーネントに分割します。
MVCの利点の一つは、これらのコンポーネントがそれぞれ異なる責務を持っているため、変更が発生した場合でも他のコンポーネントへの影響が少なく、保守性が向上することです。

Model(モデル)

モデル(Model)は、アプリケーション固有のデータや処理を扱う部分です。
データベースにアクセスして、データの登録や取得、更新、削除などの処理を行います。

役割

  • モデルはアプリケーションのデータおよびビジネスロジックを担当します。
  • データの取得、更新、保存などの操作がモデル内で行われます。
  • データベースとのやり取りや、アプリケーション内のデータの管理を行います。

さっくりいうと データやロジック部分の担当。

ロジックとは?

プログラムやシステムの振る舞いを制御するための規則や手続きのことを指します。具体的には、条件分岐、ループ、演算、データの処理などが含まれます。ロジックは、プログラムの正確性や効率性を確保するために重要です。

View(ビュー)

View(ビュー)は、コントローラから対応する画面を呼び出すときに、どのような見た目で、どこに処理したデータを入れ込むかを書いておくファイルになります。

役割

  • ビューはユーザーに表示されるインターフェースを担当します。
  • ユーザーインターフェースの構築、表示、ユーザーからの入力の受け付けなどを行います。
  • モデルからのデータを表示するために使用され、ユーザーの操作をコントローラに通知することがあります。

ざっくりいうと ユーザーインターフェース(UI)を担当。

Controller(コントローラ)

Controller(コントローラ)は、ルーティングで判断された内容をもとに、決められた処理を実行した上で、対応する画面を表示させます。

役割

  • コントローラはユーザーからの入力を受け取り、それに基づいてモデルやビューを制御します。
  • ユーザーがビュー上で行った操作(ボタンのクリック、フォームの入力など)を処理し、それに基づいてモデルの更新やビューの更新を行います。
  • コントローラはユーザーインターフェースとビジネスロジックを仲介し、それらを分離することで柔軟性と保守性を向上させます。

ざっくりいうと ModelとViewの橋渡しを行います。データの制御や処理の流れを管理。

参考

https://techtionary.jp/2074/
https://agency-star.co.jp/column/mvc/

Discussion