0

私は、Javaを使用したModel-View-Controller(MVC)についての独創的な記事を読んでいます(ここにいる多くの人々は、MVCについて議論するときにすでにそれを参照しています)。

http://www.oracle.com/technetwork/articles/javase/mvc-136693.html

基本的に、モデルがコントローラーに通知を送信する、変更されたMVCフローを示します(従来の方法のようにビューではありません)。次に、コントローラーは通知をビューに渡してインターフェースを更新するか、ユーザー操作のコマンドを解釈してモデルに送り返します。

ControllerとViewが連携して動作する方法について質問があります。この記事では、作成者は両方のビューでControllerへの参照を保持し、これらのビューでControllerのメソッドを直接呼び出しました。私はその背後にある合理性について疑問に思っていました。なぜ彼はコントローラーにいくつかのActionListenersを実装せず、ビューのインタラクションウィジェットにこれらのリスナーにシグナルを送信させなかったのですか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

これは結合の問題です。

ビューにそのコントローラーへの参照がある場合、ビューはコントローラーに結合されます。ビューが別のコントローラーを使用することを期待しない場合は、これを行います。直接アクセスすると、さまざまなコードパスをたどるのが簡単になります。

アクションリスナーパターンを実装すると、ビューとコントローラーが分離されます。ビューとコントローラーは独立して存在でき、同じビューに対して異なるコントローラーを使用できる可能性があります。

于 2012-04-09T19:29:14.857 に答える