Observer Pattern / Listener Pattern
lima-city → Forum → Programmiersprachen → Java
attribut
ausrede
bau
design
ereignis
http
interface
kurzes beispiel
liegen
objekt
passen
prinzip
problem
service
typ
url
verwenden
verwendung
verzichten
zugriff
-
Nabend,
ich hab da ein Problem, unzwar habe ich eine Klasse MeinService extends Service ...dieser soll nun eigl. noch ein extends von Observable bekommen, nur das geht ja leider nicht... gibts nicht trotzdem eine Möglichkeit dieses Observer Pattern umzusetzen?
Ich hab jetzt auch von dem Listener Pattern gehört, ist es im Prinzip dasselbe wie das Observer Pattern??
vielen dank schon mal :D -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo myhead,
ich gehe jetzt mal von java.xml.ws.Service aus. D.h. Deine Klasse ist ein Client für einen Webservice.
Wie man das Problem löst, hängt davon ab, was Du mit Deiner Klasse machen willst.
Wenn Du zwar den Zugriff auf den Webservice innerhalb der Klasse benötigst, aber es von außen nicht wichtig ist, dass das Objekt ein Service ist, dann ginge folgendes:
- Leite Deine Klasse anstelle von Service von Observable ab.
- Baue ein Service-Objekt als privaten Member in die Klasse ein.
Wenn Deine Klasse unbedingt vom Typ Service sein muss, dann musst Du auf Observable verzichten und liegst mit dem Listener schon ganz richtig. Ein Listener ist ein Objekt, das auf Ereignisse reagiert. Dazu musst Du einerseits eine von java.util.EventObject abgeleitete Klasse und ein dazugehöriges Interface erstellen. Alle Objekte, die dann das Ereignis empfangen sollen müssen dieses Interface implementieren. Damit kannst Du andere Objekte über Datenänderungen informieren.
Ein kurzes Beispiel dazu findest Du z.B. hier und etwas auführlicher mit Mr. Happy Object hier
Edit: Mr. Happy Object!
Beitrag zuletzt geändert: 9.6.2011 2:54:59 von darkpandemic -
Hey danke, hat mir sehr geholfen.
Es gibt aber einen weg es doch mit Observer zu machen, unzwar mit einer inneren klasse, wobei die äußere klasse dann ein Attribut vom Typ der inneren Klasse hat.
-
Hallo myhead,
so populär Design Patterns auch sein mögen, versuche nicht, sie nur ihrer selbst wegen zu verwenden. Wenn du dich schwer tust, ein Pattern anzuwenden, dann kann das auch daran liegen, dass dein Problem nicht für das Pattern geeignet ist.
Ich will dir die Verwendung von Patterns nicht ausreden, aber sie müssen schon passen. "Vor Re-use kommt use!"
Gruß
Udo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage