質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

1回答

3413閲覧

Web開発時のMVCモデル、ModelとControllerの違いについて

hayato208

総合スコア19

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2020/10/23 05:55

MVCモデルの解釈

MVCモデルについて、Viewはユーザーに表示される情報を担当するのは分かるのですが、ModelとControllerの境界がいまいち分かりません。
もちろんあくまでモデルであり、絶対の正解はない(だからこそ分かりにくいのですが)ことを理解した上で質問します。

個人的は解釈では
Model:DBと直接やり取りを行い、保存や更新、削除等(CRUD)を行う。
Controller:Viewから受け取った情報を加工し、Modelに渡す。ModelとViewの橋渡し。
だと思っております。
なので、例えばSQLみたいなデータ保存や更新の指示はControllerが行い、実際にDBに対して働きかけているのはModelだと思っています。

例えば下記事例のような良くあるWebページを考えた場合、それぞれはどの役割になるのでしょうか。
・ユーザーにログインページにて会員情報を入力してもらい、それに適したページを表示する。

この事例をMVCにて適応した場合はどうでしょう。個人的には次のようになると思います。
View:ログインページ表示の依頼を受ける、ページを表示/ユーザーの会員情報を読み取る/会員情報に対応したページを表示
Controller:ログインページ表示を指示/読み取った会員情報に基づき情報の受け渡しを行う/会員情報に対応したページを表示を指示
Model:会員情報に対応する情報を渡す

抽象的な質問ではありますが、回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/10/23 05:58 編集

何が問題でしょうか。 ”どうなれば解決となるのか”が不明です。 絶対の正解がないことが分かっているなら余計に、問題が見えません。
m.ts10806

2020/10/23 05:59

「それでいいんじゃないですか」程度のアドバイスで満足できるなら、ここまで長い文章書く意味がないでしょうし。
guest

回答1

0

Model=DBって認識なのはWebMVCだけで
本来のMVCでは違う。
CとV以外は全部Modelと思っていい。

WebだけでMVCを理解するのはそもそも不可能。
PCのGUIアプリ開発時に生まれた物なのでここを知らないと全く分からない。
一般的なMVCの説明ではM->Vに矢印が出てる。
「Mを更新したらVに伝わって自動的に表示が変わる」
PCアプリでは当たり前だけどWebでは簡単にはできない。
「Mを更新したらCに戻してCからVに渡す」
WebではどうやってもCの役割が増える。

とはいえ今のスマホアプリでは旧来のMVCとは限らなくなってるので
もうMVCにこだわりすぎなくていい。
MVCのどこに書くかしか考えないと意味不明な作りしかならない。
別にMVC以外にclassを作っていいって発想を持つ。

投稿2020/10/23 07:55

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問