MVCは、あるコントローラが他のコントローラとどのように通信するかを定義していますか?

私は、一般的なMVCデザインパターン(ウィキペディア)。 GUI集約型のアプリケーションを実行する場合、私は一般的に多くのコントローラを持ち、コントローラが別のコントローラにイベントを送信することがあります。

MVCは一般的にコントローラとコントローラとの通信方法を定義していますか?コントローラは階層の上位にあるコントローラのモデルですか?

Example Suppose I have a window (which is represented by a controller/model/view), and that window is capable of launching another sub-window. The sub-window is modal, and will accept certain input. The input will affect certain processes in the main window.

5
コントローラを使用して別のコントローラと通信する場合の例を挙げることはできますか?おそらくコントローラが要求を処理するだけのモデルと通信するだけです。
追加された 著者 PeeHaa,
jgauffinによって提案されたパターンに加えて、デリゲートパターンも見てください。アップルは、あなたが望むものを達成するために、このパターンに大きく依存しています。ここでは、より高いレベルのコントローラーが下部のレバーコントローラーの代理人として機能します。
追加された 著者 eelco,
リクエストはリクエストごとに追加されます。
追加された 著者 Extrakun,
なぜあなたのコントローラは別のコントローラと通信する必要がありますか?
追加された 著者 Christian Wattengård,

3 答え

いいえ、あなたはMVCでそれを行うことはできません。次の2つのいずれかのような階層的なパターンを使用したいとします。

2
追加された

コントローラは他のコントローラのモデルにすることはできません。コントローラは、GetまたはPostで引数を渡すことができます

0
追加された

Wiki Model-View-Controller(MVC)を参照すると、ユーザーとそのユーザーとの対話から情報の表現を分離するアーキテクチャーです。

これはイベントメカニズムを定義していないので、コントローラ内通信の仕様はありません。

今あなたの質問に来る。

あるコントローラから表示されたビューを持ち、別のコントローラにデータを送信することができます。それだけでうまくいくはずです。

define form with <form action = "parentcontroller/parentaction"> to make it happens.

0
追加された