LoginSignup
3
5

More than 5 years have passed since last update.

MVCという概念

Posted at

目的

laravelで掲示板を作成する際のMVCという概念についての理解を深める


MVCとは

MVC(Model View Controller モデル・ビュー・コントローラ)は、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。
アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。
参照:https://ja.wikipedia.org/wiki/Model_View_Controller


MVC相関図

500px-MVC-Process.svg.png




Model

Model(モデル)は、一般的にビジネスロジックと呼ばれる部分。アプリケーションデータやビジネスルール、関数、データベースへのアクセス、データ管理などを担当。ビジネスロジックそのものを担当するため、UIの変更などの影響を受けにくいという利点がある。

swiftで例えるとサーバ通信をするクラス。データを扱う。

今回はPost.php, Comments.phpがModelにあたり、モデルと関連しているテーブル, 使用するコネクション名実装した


View

View(ビュー)は、レイアウト部分。UIを表示するコンポーネントであり、データ入力フォームやグラフ、図などデザインやレイアウトに関わるアプリケーションのフロントエンドを担当。

swiftで例えるとxib。テンプレート。

laravelでいう◯◯.blade.php
今回はindex.blade.php, post.blade.php, comment.blade.phpがViewにあたり、各ページに表示する内容をviewで実装した


Controller

Controller(コントロール)は、ModelとViewの仲介役。Viewから受けたデータをModelに渡して、Modelでの処理結果をViewに戻す役割。

swiftで例えるとVCL。制御。

laravelでいう◯◯Controller.php
今回はPostsController.php, CommentsController.phpがControllerにあたり、index( ), store( )メソッドをcontrollerで実装した


MVCモデルのメリット

MVCモデルを採用する事で機能ごとの分離が明確になり、独立性が確保される。分業して開発が行いやすく、自分の得意分野に集中して実装することが可能。デザイナーがViewを担当している間に、プログラマーがModelを修正するなどと分業することが可能。また、コンポーネント間の依存性が抑えられることにより、ほかの部分を変更しても、その影響を受けにくいメリットがある。


参照:https://furien.jp/columns/262/

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5