2017-03-06 4 views
0

私はこの質問への確かな答えのために1ヶ月以上探しています。 MVCデザインパターンを使用しているプロジェクト内でプログラムの制御フローがどのように行われるかについては、ゆるやかな「意見」しかありません。誰がMVC内のプログラム「制御の流れ」を扱うのですか?

私は両方の意見を見てきました。コントローラーはモデルとビューにないすべてのものを処理しますが、コントローラーはデータの操作のためにモデルの入力と呼び出しの完全性を処理する責任しか負いませんコントローラーを使用して "制御の流れ"を処理すると、プログラムがうまく設計されていないことになります。

私はここで経験の知恵を探していると思います。私は尋ねる専門のプログラミングの友人を持っていないと私は初めてMVCを学んでいるだけです。ですから、あなたの長年の経験は、この種の情報が私が読んでいるドキュメンテーション/書籍にはないので、私にとって非常に貴重なものになります。

答えて

0

MVCデザインパターンは、プログラムの構造内で「懸念の分離」を記述するとき、明確に定義された役割を持っていますが、それらの問題の実装と相互作用はあいまいであり、したがって多くの異なる方法で解釈できます。

結果として、ほとんどの人は、「コントローラ」という名前を持っているため、MVCコントローラに完全な「アプリケーション制御」を与えるようにアプリケーションを設計しているようです。

0

ここで研究を開始しますか(https://www.martinfowler.com/eaaCatalog/)? 「Web Presentation Patterns」を見てください。 AFAIK、Fowlerはこれらのパターンをカタログ化/文書化した最初の人でしたので、パターンの目的が何であるか、そして典型的な実装の実装にとらわれない理解を得るには良い場所のようです。

以降のパターンの実装にはそれぞれ独自の「風味」と解釈があることに注意してください。

+0

明らかに、PoEAAの本はウェブサイトよりもはるかに詳細です。 –

+0

OK、私はこの本のMVC部分を読んだだけです。「アプリケーションコントローラはMVCコントローラと全く同じではありません」と言います(言い換え)。しかしそれ以上の精緻化はありません。それは基本的に私が読んだ他のすべてと同じです。それは、理由についての確固たる事実がない意見として述べられています。しかし、これが真実であれば、人々が学んでいるコードとサンプルの90%は、MVCコントローラに「アプリケーション制御」を与えているので全く役に立たない。 – user2470057

+0

ここで(https://martinfowler.com/eaaCatalog/applicationController.html)を見て、私は手にする本を持っていない、彼らの違いについて合理的な精緻化があると思う。私は、あなたがパターンを導入するかもしれない時に合理的なレベルの推論もあると思う: '...アプリケーションがより複雑になるにつれて、異なる画面のいくつかのコントローラが特定の状況で何をすべきかを知る必要があるので、 ..「コントロールの流れがどれほど複雑か、それを管理するために費やしたコードの量とそれがもたらすノイズの量にまで及ぶと思います。 –

関連する問題