# Observer/Observable Pattern vs. Listener-Konzept



## diggaa1984 (3. Jun 2008)

hallo,

nachdem nu mehrere Beiträge bezüglich des Observer/Observable in letzter Zeit im Umlauf waren, stellte sich mir die Frage "Wo ist der Unterschied zum Listener" .... Beim Lesen der Javainsel bin ich nur zu dem Schluss gekommen, das ein Observer nur über die Methode update(...) seine Aktualisierung erfährt, notfalls mit nem übergebenen Argument, welches er vom Observable bekommt.

Ein Listener macht ja nix anderes, ausser das ich über die XXXListener-Schnittstelle mehrere Methoden definieren kann, welche mit diesem "update" des Observers gleichzusetzen sind, also ich diese Methode nur feingranularer in mehrere Methoden aufsplitten kann (zB: dataChanged, dataAdded, dataRemoved mit jeweiliger XXXEvent-Nachricht).

Schlussfolgerung für mich wäre, wenn ich kein komplexen Code zum Aktualisieren brauche, könnte ich das Observer/Observable nutzen, sofern ich da feingranularer modellieren möchte, wegen Lesbarkeit/Übersichtlichkeit *muss (??)* ich dann Listener nutzen

ist das so korrekt, oder habsch noch was grundlegendes übersehen.


----------



## SlaterB (3. Jun 2008)

in etwa korrekt,

genauso wie man eine Person besser in einer Klasse Person mit getName() usw. implementiert 
als in einer puren ArrayList<Object> und da die Attribute in hoffentlich richtiger Reihenfolge ablegt

allgemein vs. spezialisiert


wobei Listener nur ein möglicher Name von vielen ist, kannst die spezialisierte Klasse genausogut XYOberserver nennen


----------



## byte (3. Jun 2008)

Ist beides das gleiche Entwurfsmuster...


----------



## Marco13 (3. Jun 2008)

Irgendwann hatte ich mal gesagt, dass Observable/Observer das gleiche ist wie Model/Listener/Event, nur dass bei Observer/Observable der geworfene Event eben 'void' ist :wink: Aber ansonsten hattest du das schon sinnnoll zusammengefasst.


----------



## diggaa1984 (3. Jun 2008)

ich wollt nich behaupten das ich alles in den threads gelesen hatte  aber schoen das sich meine vermutung weitestgehend bestätigt  :###   :idea:


----------

