Huhu Community
Kurze Implementationsfrage: wenn ich Klassen haben, die von Abstract Observable erben und diese beobachtet werden von Klassen, die das Interface Observer implementieren...wie kann ich dann am besten über mehrere Änderungen informieren und zwischen ihnen differenzieren?
Also ich meine, wenn ich am Observable mit setChanged() die Flag setze und mit notifyObservers() über die Änderung informiere, kann ich ja in ein arg übergeben: notifyObservers( Object arg )
Wäre es dann am schlausten, vorher z.B. immer 'ne enum aufzustellen und die dann zu übergeben?
Was ich meine ist halt: Es wurden mehrere Exemplarvariablen zugleich geändert und der Beobachter braucht die neuen Werte der veränderten Exemplarvariablen.
Z.B. wurden int a, int b und String s verändert und der Observer soll auf alle 3 unterschiedlich reagieren. Dann könnte ich ja nicht jedes mal notifyObservers(a), notifyObservers(b) und notifyObservers(s) machen, da dann die entsprechende
update(Observer o, Object arg) vom Observer jedes Mal diese eine Update-Methode aufrufen würde und nicht unterschiedlich auf die übergebenen Werte reagieren würde/könnte.
Ebenfalls würde auch kein Vergleich helfen, ob arg z.B. ein int ist, da a und b ja vom Typ int sind und auf beide unterschiedlich reagiert werden soll...also würde weder ein Vergleich noch eine überladung von Update was bringen...
...irgendwie müsste doch das Observable am besten über notifyObservers mitteilen, hey: hier kommen mehrere Neuerungen, und zwar folgende..
Wie löst man das am besten?
Grüße & Danke im Voraus
ascer
Kurze Implementationsfrage: wenn ich Klassen haben, die von Abstract Observable erben und diese beobachtet werden von Klassen, die das Interface Observer implementieren...wie kann ich dann am besten über mehrere Änderungen informieren und zwischen ihnen differenzieren?
Also ich meine, wenn ich am Observable mit setChanged() die Flag setze und mit notifyObservers() über die Änderung informiere, kann ich ja in ein arg übergeben: notifyObservers( Object arg )
Wäre es dann am schlausten, vorher z.B. immer 'ne enum aufzustellen und die dann zu übergeben?
Was ich meine ist halt: Es wurden mehrere Exemplarvariablen zugleich geändert und der Beobachter braucht die neuen Werte der veränderten Exemplarvariablen.
Z.B. wurden int a, int b und String s verändert und der Observer soll auf alle 3 unterschiedlich reagieren. Dann könnte ich ja nicht jedes mal notifyObservers(a), notifyObservers(b) und notifyObservers(s) machen, da dann die entsprechende
update(Observer o, Object arg) vom Observer jedes Mal diese eine Update-Methode aufrufen würde und nicht unterschiedlich auf die übergebenen Werte reagieren würde/könnte.
Ebenfalls würde auch kein Vergleich helfen, ob arg z.B. ein int ist, da a und b ja vom Typ int sind und auf beide unterschiedlich reagiert werden soll...also würde weder ein Vergleich noch eine überladung von Update was bringen...
...irgendwie müsste doch das Observable am besten über notifyObservers mitteilen, hey: hier kommen mehrere Neuerungen, und zwar folgende..
Wie löst man das am besten?
Grüße & Danke im Voraus
ascer