Wertes Forum,
nachdem ich nun einige Zeit mit der Einarbeitung verbracht habe und glaube die Grundlagen von Java soweit erstmal halbwegs begriffen zu haben, hab ich eine konzeptionelle Frage. Dazu kurz ein Umriss von dem was ich bisher geschafft habe: Ich programmiere gerade ein kleines tool, welches Midi Daten von einem externen Midi controller abgreift, diese visualisiert und auch ein bisschen Midi output macht. Das klappt alles ganz prima, genau nach meinem Geschmack. Angefangen hatte es ganz furchtbar mit einem dutzend singleton classes, da ich mit dem Kopf noch zu sehr in der prozeduralen Welt hängen geblieben war. Mittlerweile habe ich das ganze brav in Klassen verpackt und glaube zumindest diesen Teil von OO zu verstehen.
Die Klasse kümmert sich um das sensing der hardware, holt aus dem java MidiSystem einen Receiver und einen Transmitter und schon geht's los. Ich empfange Midi Daten in der Klasse und kann diese auf der Konsole ausgeben.
Eine Instanz der Klasse rufe ich aus main auf:
Im Konstruktor der Klasse wird dann eine interne listen() Methode aufgerufen, die auf den input stream wartet.
Sorry, ganz schön lange Einleitung. Hier meine Frage:
Wie mache ich nun weiter? ???:L Mein Plan ist verschiedene Ereignisse aufgrund von bestimmten Midisignalen auszulösen. Wie leite ich am elegantesten die Daten aus der MyDeviceClass raus um sie anderswo auszuwerten und abhängig von bestimmten Parametern Aktionen zu triggern? Baue ich eine extra "routing" Klasse, die Aufrufe entgegennimmt und weiterleitet? Sollte es lieber sowas wie eventListener geben, die immer am lauschen sind? Baue ich einfach eine handvoll singletons?
Da mein Ziel ist, die Daten in Abhängigkeit von bestimmten Parametern an ständig unterschiedliche Orte zu leiten, tendiere ich zu der routing Methode, quasi eine Klasse, die jedes Signal annimmt und dann entscheidet wo es hin soll. Nur wie soll dieses "hin" überhaupt implementiert sein? Auch eine Klasse? Singletons?
Ihr seht schon, da hakt bei mir ein bisschen das Verständnis für OOP.. vielleicht könnt Ihr mir ja einen Schubs in die richtige Richtung geben. Hoffe ich konnte verständlich machen, was ich meine. Gar nicht so einfach so eine abstrakte Frage in Worte zu giessen Wenn es gar nicht verständlich ist versuche ich nochmal nachzulegen
Danke & Grüße
nachdem ich nun einige Zeit mit der Einarbeitung verbracht habe und glaube die Grundlagen von Java soweit erstmal halbwegs begriffen zu haben, hab ich eine konzeptionelle Frage. Dazu kurz ein Umriss von dem was ich bisher geschafft habe: Ich programmiere gerade ein kleines tool, welches Midi Daten von einem externen Midi controller abgreift, diese visualisiert und auch ein bisschen Midi output macht. Das klappt alles ganz prima, genau nach meinem Geschmack. Angefangen hatte es ganz furchtbar mit einem dutzend singleton classes, da ich mit dem Kopf noch zu sehr in der prozeduralen Welt hängen geblieben war. Mittlerweile habe ich das ganze brav in Klassen verpackt und glaube zumindest diesen Teil von OO zu verstehen.
Die Klasse kümmert sich um das sensing der hardware, holt aus dem java MidiSystem einen Receiver und einen Transmitter und schon geht's los. Ich empfange Midi Daten in der Klasse und kann diese auf der Konsole ausgeben.
Eine Instanz der Klasse rufe ich aus main auf:
Code:
MyDeviceClass device = new MyDeviceClass();
Im Konstruktor der Klasse wird dann eine interne listen() Methode aufgerufen, die auf den input stream wartet.
Sorry, ganz schön lange Einleitung. Hier meine Frage:
Wie mache ich nun weiter? ???:L Mein Plan ist verschiedene Ereignisse aufgrund von bestimmten Midisignalen auszulösen. Wie leite ich am elegantesten die Daten aus der MyDeviceClass raus um sie anderswo auszuwerten und abhängig von bestimmten Parametern Aktionen zu triggern? Baue ich eine extra "routing" Klasse, die Aufrufe entgegennimmt und weiterleitet? Sollte es lieber sowas wie eventListener geben, die immer am lauschen sind? Baue ich einfach eine handvoll singletons?
Da mein Ziel ist, die Daten in Abhängigkeit von bestimmten Parametern an ständig unterschiedliche Orte zu leiten, tendiere ich zu der routing Methode, quasi eine Klasse, die jedes Signal annimmt und dann entscheidet wo es hin soll. Nur wie soll dieses "hin" überhaupt implementiert sein? Auch eine Klasse? Singletons?
Ihr seht schon, da hakt bei mir ein bisschen das Verständnis für OOP.. vielleicht könnt Ihr mir ja einen Schubs in die richtige Richtung geben. Hoffe ich konnte verständlich machen, was ich meine. Gar nicht so einfach so eine abstrakte Frage in Worte zu giessen Wenn es gar nicht verständlich ist versuche ich nochmal nachzulegen
Danke & Grüße