使用しているJavaテクノロジーはわかりませんが、GWTアプリケーション(およびMVPパターンを使用)では、ビューにコントローラーへの参照を含める必要はありません。コントローラー(またはプレゼンター)とビューの間のすべての通信ビューによって実装されたインターフェイスを介して作成されます。特定のケースでは、コードは次のようになります。
表示インターフェースを定義します。
public interface Display {
public void registerEventListener(Listener aListener)
public List getSelectedFiles ()
}
ビューにそのインターフェイスを実装させます。
public class View implements Display{
//The method implementations
}
そして、コントローラーで必要なすべてのバインディングを作成します。
public class Controller{
private Display view;
public Controller(){
//Or use some DI technology
this.view = new View();
//Get a Listener implementation, maybe an Anonymous Inner Class
this.view.registerEventListener(getListener());
}
public void processFiles(){
List files = view.getSelectedFiles();
//Do the processing here
}
}