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

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

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

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

Q&A

解決済

5回答

2544閲覧

MVCで開発するときに作ったコードって必ずモデル、ビュー、コントローラーのいずれかに属するんでしょうか。

wakka

総合スコア38

MVC

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

0グッド

0クリップ

投稿2015/06/22 04:28

MVCで開発するときに作ったコードって必ずモデル、ビュー、コントローラーのいずれかに属するんでしょうか。

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

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

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

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

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

guest

回答5

0

ベストアンサー

MVCモデルだからといって、モデル、ビュー、コントローラーのいずれかに属すという事は前提条件ですが、オリジナルのプラグインや外部コンポーネットなどを追加している場合は、その条件にそぐわない物も有ります。

あくまでも構成上の定義(概念)なので、独自にカスタマイズされていたりすると上記に一致しないことも多々あります。

例えば、O/Rマッパーが使用されていたり、テンプレートファイルがフレームワーク既定の物ではない場合などは上記構成に一致しない可能性も考えられます。

投稿2015/06/22 04:39

takayukiinaba

総合スコア1158

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

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

wakka

2015/06/22 05:03

フレームワークの仕様や外部ライブラリなどによってはMVCとは別のフォルダに書く必要があったりってことがあるんですね。 ありがとうございます!
guest

0

Model、View、Controllerのどれにも属さないコードは普通にたくさんあります。
String、Array、Dictionary、Date、main()関数などなど、その他もろもろ。

MVCパターンは、3つのコンポーネントを組み合わせてアプリケーションを構成する設計です。別にコードを3つに分けるというものではありません。

ちなみに、MVCパターンにおいては、DBアクセスはモデルになります。
DBアクセスをモデルから切り離したら、それはMVCとは別のパターンになります。

投稿2015/06/22 15:14

Stripe

総合スコア2183

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

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

wakka

2015/06/23 02:38

なるほど。モデルはビジネスロジックを表すというのはCakePHPのMVCの考え方?であってMVCパターンとはちょっと違うんですかね。 早合点せずもう一度調べ直してみます。 ありがとうございます。
Stripe

2015/06/23 10:42

ビジネスロジックはモデルです。何も違いません。MVCのModelは、アプリケーションモデルなので、アプリケーションの機能全てを含みます。
wakka

2015/06/24 01:53

DBアクセスもアプリケーションの機能の1つと考えればたしかにそうですね。 DBアクセスってアプリケーションを表す主要な概念とはちょっと外れるんじゃないかと思ったので引っかかってました。
guest

0

一見して、モデルオブジェクトはアプリケーションに使用しているであろうデータベースとやりとりする最初の層と見ることができるでしょう。 しかし、一般的にこれはアプリケーションを実装するものの主要な概念を表します。

http://book.cakephp.org/2.0/ja/cakephp-overview/understanding-model-view-controller.html

DBアクセスはモデルとはまた別なんですね。
回答してくださった方ありがとうございました。

投稿2015/06/22 06:03

wakka

総合スコア38

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

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

0

ここに挙がっているように、ふつうのModel、View、Controllerとはまた違うクラスを立てて開発を進めることもあります。

ただ、分類していけばM、V、Cのどれかには属することになります(もっとも、ビューにクラスがないことも多いので、ビューで使うロジックを便宜上別な場所に置くことはあります)。

投稿2015/06/22 04:58

maisumakun

総合スコア145121

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

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

wakka

2015/06/22 05:14

railsだとこんな風にできるんですね。参考になります。 ビューで使うロジックっていうと、例えばフォームで扱うデータについての型やバリデーションみたいな部分は別に置く事もあるんでしょうか?
guest

0

仮想環境で実行すれば…
単独でコードを実行させることも可能ですがあまり意味をなしませんね

投稿2015/06/22 04:33

m6526k

総合スコア27

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

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

wakka

2015/06/22 04:57

MVCと仮想環境…? すみません、勉強不足でちょっとよくわからないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問