0

私はMVCパターンを理解しようとしています。まだ理解していない概念が1つあります。私はMVCを説明しようとするここのすべての記事を見てきましたが、この1つの質問はまだ明確に答えられていません。モデルまたはコントローラのMVC変数?

モデルまたはコントローラ、あるいはその両方に変数を作成しますか?

私は変数を保持するデータを変更するために、コントローラからモデルに変数を渡す人がいるのを見ることができますが、コントローラからその値を呼び出すだけです。あるいは、モデル内に変数を作成し、その値をコントローラ内の同じ変数にコピーする方が良いでしょうか?

ご存知の方は、なぜ他のものより優れているのかを説明してください。私は、正しい答えを知るだけでなく、理解することを求めています。ありがとうございました。

答えて

0

アプリケーションの存続期間を通じて必要とされる永続的なデータは、モデル内に保持する必要があります。モデル内のデータを設定、取得、操作するためのモデルメソッド呼び出しは、コントローラによって実行される必要があります。アプリケーションまたは(何らかの理由で)ビューによって必要

一時データは、コントローラ内に保持することができ...コントローラ内で永続的なデータを保持する必要はありません。MVC設計パターンの実装が悪いと考えられるためです。

1

私は

のためのまっすぐな答えを与える場合は、モデルやコントローラ、またはその両方で変数を作成するのですか?

実際には関係ありません。

モデルコントローラの背後にある主要なアイデアは

  • あるコントローラプレゼンテーション・ロジックを常駐します。
  • モデル居住者ビジネスロジックです。
  • だから、あなたは別のプレゼンテーションロジックを使用してモデルを提示したい場合は、既存のモデルアウトを取得することができますし、あなたのビジネスロジック&プレゼンテーションロジックが分離されているので、何の問題もなく新しいコントローラーでそれをプラグ(互いに混ざらない)。

これは私がMVCアーキテクチャで見つけた最良の図です。あなたはこれであなたの理解をアップグレードできることを願っています。だから、変数の面で、あなただけのビジネスロジックの目的のための変数を作成する必要がありますモデルで

enter image description here

コントローラでは、プレゼンテーション用です。 :))

+0

これは良い図ですが、私の混乱がどこにあるのか分かります。この美しい図でも、変数は言及されていません。 – user2470057

+0

@ user2470057コントローラの変数をアプリケーションのビジネスロジックと混同しない限り、まったく問題はありません。実際、モデルはコントローラのサービスプロバイダです。 :)) –

+1

@ user2470057私はあなたのステートメントを改善するなら、私は "コントローラはPRESENTATIONロジックを担当し、変数を保持し、コントローラに存在する変数を更新するためにモデルを呼び出し、更新するビューを呼び出します。コントローラーに存在します。 " :)) –

関連する問題