Hi
Gibt es irgendwelche "best practices", wie man das Event-Handling von "vielen" Modellen und Eigenschaften am günstigsten implementiert?
PropertyChangeEvents sind mir irgendwie suspekt: Einerseits sind sie sehr praktisch (und so allgemein, dass es schon nichtmehr allgemeiner geht), aber andererseits sind sie ja eigentlich nur für Java Beans gedacht, und durch die "Object" als values so wenig typsicher und durch die String-identifier so Fehleranfällig (etwa, wenn Members umbenannt werden) dass ich nicht sicher bin, ob man sie in eigenen Modellen überhaupt verwenden sollte... ???:L
Anders formuliert: Man könnte ja theoretisch(!) ALLE Events als "PropertyChangeEvent" implementieren (Selbst bei MouseEvents wird ja nur die "Property" der Mausposition geändert - nur zur Verdeutlichung... :roll: ), und es muss ja einen Grund geben, warum das nicht gemacht wird...
Wenn man aber viele Modellklassen und viele Eigenschaften hat, erscheint mir das Erstellen von dedizierten Listener-Interfaces mit 5, 10 oder mehr Methoden und das Erstellen, Feuern und Behandeln der dazugehörigen Events so repititiv und redundant (und beim Implementieren so verdammt langweilig :roll: ), dass ich mir kaum vorstellen kann, dass es da nicht eine bessere Lösung gibt...
Sicher kann man sich da einige Ansätze überlegen, aber irgendwie hat man wohl immer diesen "Tradeoff" zwischen der Typsicherheit und dedizierten, eindeutigen Methoden bei einzelnen Listenern, und einem einfachen, allgemeinen, aber auch etwas "schwammigen" Konzept mit allgemeinen Events und irgendwelchen String-Identifiern für die geänderten Eigenschaften.
Mich würde interessieren, wie ihr die verschiedenen Ansätze einschätzt, ob ihr vielleicht einen "goldenen Mittelweg" kennt, oder wo ihr Vor- oder Nachteile seht, die ich noch nicht bedacht habe.
bye
Gibt es irgendwelche "best practices", wie man das Event-Handling von "vielen" Modellen und Eigenschaften am günstigsten implementiert?
PropertyChangeEvents sind mir irgendwie suspekt: Einerseits sind sie sehr praktisch (und so allgemein, dass es schon nichtmehr allgemeiner geht), aber andererseits sind sie ja eigentlich nur für Java Beans gedacht, und durch die "Object" als values so wenig typsicher und durch die String-identifier so Fehleranfällig (etwa, wenn Members umbenannt werden) dass ich nicht sicher bin, ob man sie in eigenen Modellen überhaupt verwenden sollte... ???:L
Anders formuliert: Man könnte ja theoretisch(!) ALLE Events als "PropertyChangeEvent" implementieren (Selbst bei MouseEvents wird ja nur die "Property" der Mausposition geändert - nur zur Verdeutlichung... :roll: ), und es muss ja einen Grund geben, warum das nicht gemacht wird...
Wenn man aber viele Modellklassen und viele Eigenschaften hat, erscheint mir das Erstellen von dedizierten Listener-Interfaces mit 5, 10 oder mehr Methoden und das Erstellen, Feuern und Behandeln der dazugehörigen Events so repititiv und redundant (und beim Implementieren so verdammt langweilig :roll: ), dass ich mir kaum vorstellen kann, dass es da nicht eine bessere Lösung gibt...
Sicher kann man sich da einige Ansätze überlegen, aber irgendwie hat man wohl immer diesen "Tradeoff" zwischen der Typsicherheit und dedizierten, eindeutigen Methoden bei einzelnen Listenern, und einem einfachen, allgemeinen, aber auch etwas "schwammigen" Konzept mit allgemeinen Events und irgendwelchen String-Identifiern für die geänderten Eigenschaften.
Mich würde interessieren, wie ihr die verschiedenen Ansätze einschätzt, ob ihr vielleicht einen "goldenen Mittelweg" kennt, oder wo ihr Vor- oder Nachteile seht, die ich noch nicht bedacht habe.
bye