| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
| [ Java ] - Wie mache ich einen Eventdispatcher?
Ich bin seit gestern am rumsuchen und komme einfach nicht weiter. ich suche nach einer möglichkeit meine klassen über Events lose zu koppeln so wie in AS mit Eventdispatchern. Wo und wie kann man da ansetzen? Das einzige was ich gefunden habe ist erstmal Observer/Observable, hier mal etwas code der aber leider nicht funktioniert. class MyObservable Code:
package de.zweimaleins.asterisk.models;
import java.util.Observable;
public class MyObservable extends Observable {
public void startTest()
{
this.notifyObservers();
}
} Code: package de.zweimaleins.asterisk.test;
import java.util.Observable;
import java.util.Observer;
public class MyObserver implements Observer {
public MyObserver() {
// TODO Auto-generated constructor stub
}
@Override
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
System.out.print("MyObserver.update()");
}
} Test Case Code: package de.zweimaleins.asterisk.test;
import java.util.Observable;
import java.util.Observer;
import de.zweimaleins.asterisk.models.*;
public class ObserverTest implements Observer {
private User user;
@Override
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("ProgrammersBase.NET \u0021");
User user = new User();
MyObserver obs = new MyObserver();
user.addObserver( obs );
// hier sollte jetzt eigentlich obs.update() aufgerufen werden, geht aber nicht
user.startTest();
}
} gruß mad
__________________ |
| | |
| | #2 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
ok, das geht jetzt, setChanged() hat gefehlt. class MyObservable Code:
package de.zweimaleins.asterisk.models;
import java.util.Observable;
public class MyObservable extends Observable {
public void startTest()
{
setChanged();
this.notifyObservers();
}
}
__________________ |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.145
|
Java unterstützt kein EventModel, das dem von ActionScript 3 ähnelt. Das Observer Pattern ist schon der richtige Ansatz meiner Meinung nach, denn das EventSystem in ActionScript 3 ist im Grunde nichts anderes. Zudem hast du in ActionScript 3 noch einen Einbruch des jeweiligen Dispatchers in einen anderen Gültigkeitsbereich durch das Delegate. Schaue dir vielleicht ergänzend das Command Pattern an. Und wenn es dir um lose Kopplung geht -> Dependency Injection/Inversion of control conatiner (á la Spring, [etc]). Wobei Spring ziemlich Hardcore wäre für ein kleines Projekt. Wenn du aber einen lightweight Ioc container findest, sag Bescheid. In irgendeiner Java Magazin Ausgabe habe ich auch über die Veröffentlichung eines EventDispatchers gelesen. Und ein Delegate in Java gibt es auch... letzte Woche bei Google entdeckt. Wenn du also suchst, müsstest du fündig werden.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #4 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
ich bin jeze echt überrascht, daß AS in dieser hinsicht eine nase vorraus ist. es gibt leider keine echten delegates in java. Ich werde mir jeze wohl nen kleinen Eventdispatcher selber schreiben, is ja nicht sooo viel arbeit. danke für deine tips omega. mit spring will ich nix anfangen, hab ja auch keine GUI oder so weil ich eh nur was für den wowza server entwickeln will.
__________________ |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.145
|
Das Delagate wird in Java bewusst vermieden, da Objekte einen Eingriff und Einsicht in andere Objekte bekommen. Ich meinte nicht Swing - das GUI Framework, sondern den Ioc Container: http://www.springframework.org/
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript Geändert von Omega Psi (11-09-2008 um 13:55 Uhr) |
| | |
| | #6 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
ah hehe spring swing klingt ja fast genauso , naja bin noch neu auf dem gebiet. habe jeze einen Eventdispatcher gefunden der meinen anforderungen genügt und sich ähnlich wie AS "anfühlt":http://java.schst.net/EventDispatcher
__________________ |
| | |
| | #7 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.145
|
Das war auch der, den ich meinte... meine ich zumindest
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |