Ich brauche die Ansicht, um einen Verweis auf den Controller zu halten, weil er den Controller als Ereignis-Listener registrieren muss. Ich brauche den Controller, um einen Verweis auf die Ansicht zu halten, denn nach einem Klick auf die Schaltfläche muss ich in der Lage sein, die ausgewählten Dateien in einer Liste abzurufen. (Ich habe eine Liste von Dateien und eine Schaltfläche 'Cluster hinzufügen', also wenn die Schaltfläche geklickt wird, muss ich die ausgewählten Dateien holen)
Kurz gesagt, ich habe:
%Vor%Ich bin mir sicher, dass es hier ein schlechtes Design gibt, ich kann einfach nicht herausfinden, wie ich es vermeiden kann.
Eine mögliche Lösung:
addView(View view)
Methode addController(Controller controller)
-Methode ein. Ich bin mir nicht sicher, welche Java-Technologien Sie verwenden, aber in GWT-Anwendungen - und mit dem MVP-Muster - muss die View keinen Verweis auf den Controller haben: Die gesamte Kommunikation zwischen dem Controller (oder Presenter) und die Ansicht erfolgt über eine Schnittstelle, die von der View implementiert wird. In Ihrem speziellen Fall sollte Ihr Code wie folgt aussehen:
Definieren Sie eine Display-Schnittstelle:
%Vor%Lassen Sie die Ansicht diese Schnittstelle implementieren:
%Vor%Und machen Sie alle notwendigen Bindungen in der Steuerung:
%Vor%Nun, ich glaube, Sie können die Kapselung und auch den lazy-Initialisierungsprozess verwenden. Ich bin sicher, dass Sie die Ansicht nicht im selben Moment benötigen, wenn der Controller initialisiert wird oder umgekehrt. Wenn nicht, können Sie auch die obige Antwort in Verbindung mit der lazy-init-Eigenschaft für Beans erhalten.
Um Ansicht und Controller richtig zu verbinden, klicken Sie bitte auf die * .aspx Seite und wählen Sie "Gehe zum Controller" Menü. Fügen Sie nun in dem respektierten Controller eine Methode mit der folgenden Syntax hinzu.
%Vor%Dabei ist viewname der Name Ihrer Ansicht für ex. in .net ist der Name der Seite ohne Aspx-Erweiterung Wenn Sie nun mit der rechten Maustaste auf Ansicht klicken und das Menü "Zur Ansicht" auswählen, wird Sie bestätigt, dass Sie die Ansicht und den Controller gut verknüpft haben.
Tags und Links java model-view-controller circular-dependency