Um das Observerpattern umsetzen zu können gibt es ja in Java bereits die Klasse Observable und das Interface Observer. Ich hab jetzt das Problem das ich gegebene Modellklassen habe, die ich gerne mit einer gui verbinden möchte... die Veränderungen der Modellklassen möchte ich beobachten lassen - sprich ich möchte mir die Möglichkeit offen halten die Anzeige später beliebig zu ändern oder sogar mehrere Anzeigen gleichzeitig benachrichtigen zu können.. spricht also eigentlich alles für Observer.
Wie kann ich das jetzt mit Java-Boardmitteln erledigen? Ich müsste ja eigentlich meine Modellklasse von Observable erben lassen, dann wäre alles ganz prima... dummerweise hab ich natürlich bereits von ner anderen Klasse geerbt. Jetzt hab ich gedacht, dass ich in meiner Klasse einfach nen Feld für den Obserable mache, den ich bei einer Veränderung in meiner Modellklasse einfach benachrichtige und dieser ausgelagerte Observable ruft dann alle Observer auf.
Dummerweise ist Observable halt wirklich auf die Vererbung ausgelegt und die setChanged-Methode ist protected...
Wie mach ich das jetzt also vernünftig - bzw. wie würdet ihr vorgehen?
Soll ich ne eigene Klasse Observable machen an die ich von meiner Modellklasse delegiere und dort eine entsprechende Methode aufrufe bei einer Veränderung und die dann wiederum die setChanged-Methode aufruft? Klingt irgendwie auch blöd
Oder soll ich mir nen eigenes Observerkonzept ausdenken mit Interfaces?
Wie kann ich das jetzt mit Java-Boardmitteln erledigen? Ich müsste ja eigentlich meine Modellklasse von Observable erben lassen, dann wäre alles ganz prima... dummerweise hab ich natürlich bereits von ner anderen Klasse geerbt. Jetzt hab ich gedacht, dass ich in meiner Klasse einfach nen Feld für den Obserable mache, den ich bei einer Veränderung in meiner Modellklasse einfach benachrichtige und dieser ausgelagerte Observable ruft dann alle Observer auf.
Dummerweise ist Observable halt wirklich auf die Vererbung ausgelegt und die setChanged-Methode ist protected...
Wie mach ich das jetzt also vernünftig - bzw. wie würdet ihr vorgehen?
Soll ich ne eigene Klasse Observable machen an die ich von meiner Modellklasse delegiere und dort eine entsprechende Methode aufrufe bei einer Veränderung und die dann wiederum die setChanged-Methode aufruft? Klingt irgendwie auch blöd
Oder soll ich mir nen eigenes Observerkonzept ausdenken mit Interfaces?