Wie benachrichtige ich eine Klassenkomponente eines Ereignisses?

8

Ich habe die Klasse A und ihre Komponentenklasse B.

%Vor%

Wenn ich eine Instanz von B in meiner Klasse A habe und diese Instanz von B irgendwie aktualisiert wird, wie kann ich meine Instanz von Klasse A benachrichtigen und bWasUpdated() aufrufen?

Ich habe versucht Schnittstellen, aber endete wirklich verwirrt. Ich denke, ich verstehe nicht ganz, wie man Daten zwischen einem Objekt und seiner Komponente noch weitergibt.

BEARBEITEN

%Vor%     
wayway 19.02.2016, 04:20
quelle

2 Antworten

11

Sie sollten einen Listener verwenden, der eine Form des Musters namens Beobachtermuster .

Fügen Sie diese Schnittstelle zuerst Ihrer B-Klasse hinzu:

%Vor%

Zweitens fügen Sie eine Listener-Variable zu B mit einem Setter hinzu:

%Vor%

Drittens: make A implementiert die ChangeListener-Schnittstelle und registriert sich selbst als Listener:

%Vor%

Und last but not least, rufen Sie Ihren Hörer in B, wenn sich etwas ändert:

%Vor%     
FlyingPumba 19.02.2016, 04:31
quelle
3

Wenn B - innere Klasse von A, dann können Sie in B-Setter (oder anderen Zustandsmodifikatoren) aufrufen A.this.bWasUpdated ();

    
waxtah 19.02.2016 04:26
quelle

Tags und Links