2011-12-04 12 views
2

MVC-esque Javaアプリケーションでビューとコントローラを最も効率的に接続する方法を教えてください。現在、私は次のことをやっている:Java:ビュー(GUI)とコントローラMVCとの対話?

  1. コントローラは、ビューを作成し、パラメータとしてビューに自身を渡します

    MYVIEWビュー=新しいMYVIEW(この);

  2. ビューはボタン用にActionListenerです。 ActionListener多くを行うが、コントローラにアクションを発生しません:それはOK取り組んでいるが、これは許容可能である

    private class ButtonAListener implements ActionListener 
        { 
    
         @Override 
         public void actionPerformed(ActionEvent arg0) { 
          controller.clickedButtonA(); 
         } 
    
        } 
    

?たとえば、ビュー内のボタンがクリックされた場合、ActionListenerはその情報をコントローラに渡します。コントローラにはいくつかの計算が行われ、ビューを更新するコマンドが戻されます。

答えて

2

IMHOでもかまいません。私は、きついカップリングが起こらない限り、どんな解決策もOKだと思います。使用しているGUIライブラリ(AWT、SWT、Swing ..)に応じて、異なるクラスが適切です。 Btw。あなたはアダプタをチェックアウトする必要があります(すでにそれらを知っていない場合):http://blogs.oracle.com/CoreJavaTechTips/entry/listeners_vs_adapters

コントローラからのビューの作成を移動することをお勧めします。ビューとコントローラーが分離されている場合(そしてその点全体が)、コントローラーはセッターメソッド(またはその他の依存性注入メカニズム)のみを持つべきです。私はコントローラとビューを作成し、それらを一緒に接続するランチャークラスを持つべきだと思います。

+0

お返事ありがとうございます。 – Derek

+0

問題ありません。 MVCの主なものは、プレゼンテーションをビジネスロジックとドメインから分離することです。多くの多くの記事が書かれているので、それは本当に些細な問題ではありません。あなたはMartin Fowlerの "Refactoring"などでいくつかのビットを見つけることができます。 – emesx

関連する問題