Methodenaufruf

Status
Nicht offen für weitere Antworten.
S

silke bischof

Gast
Hallo zusammen,

derzeit arbeite ich an einem Programm und einem Modul, das für die Kommunikation über ein Netzwerk bzw. Sockets Daten austauschen soll.

Das Problem an dem ich derzeit hänge ist nicht einfach zuerklären, aber ich versuche es mal.

Das oben genannte Modul soll die Kommunikation über das Netzwerk steuern und eigenständig funktionen. Das tut es eigentlich auch schon.
In dem Modul habe ich zwei Warteschlangen angelegt, eine für die zu versendenden Nachrichten und eine für die empfangen Nachrichten die vom dem Modul eigenständig abgearbeitet werden. Das Funktioniert auch reibungslos.
Das Modul soll später mal als eigenständige jar - Datei fungieren.

Jetzt habe ich nur das Problem, das wenn ich eine Anwendung schreibe, die die jar Datei einbindet, kann ich ohne Probleme Nachrichten in die zusendende Wartschlange eintragen, die dann von dem Modul versendet werden.

Jedoch wenn jetzt Nachrichten empfangen werden, werden diese vom Modul richtig in die Empfangswarteschlange eingetragen, aber dann ist auch ende. Nun habe ich es derzeit so umgesetzt, das die Anwendung die Empfangswarteschlange pollend abarbeitet. Ist in meinen Augen aber eine schlechte Lösung.

Ich hatte mir das eigentlich mal so überlegt, das ich ein Interface schreibe, das zum Beispiel die Methode "verarbeiteNachricht" enthalt. Diese Interface kann ich in irgendeiner Klasse implementieren.

So, das habe ich auch getan, nur dann stehte ich vor dem Problem. Wie rufe ich die durch das Interface implementierte Methode "verarbeiteNachricht" auf, denn sie ist ja in einer ganz anderen Klasse, als die Warteschlange.
Als ich soweit war, hab ich mir überlegt, das ich einfach die Klasse in der Klasse mit der warteschlange registiere und dadruch eine Referenz auf die Klasse mit dem Interface habe und dadaruch die Methode "verarbeiteNachricht" aufrufen kann. Die Idee fand ich zu beginn meiner Überlegungen sehr gut, nur... wenn ich eine Referenz anlegen möchte, geschiet das ja normalerweise über
Code:
private BeispielKlasse beispielKlasse = null;

public void setBeispielKlasse (BeispielKlasse beispielKlasse)
{
this.beispielKlasse = beispielKlasse;
}

Nur möchte ich bzw. es geht auch nicht anders, wenn das Modul eine jar Datei wird, das ich die Klasse, die sich registieren möchte nicht kenne. Ich würde das gerne so lösen, das sich jede xbeliebige Klasse dort registieren kann. Nur weiß ich nicht, ob das geht oder ob das überhaput geht...

Deshalb mal die Frage in die Runde, ob mir vielleicht einer bei dem Problem helfen kann, ich bin für jeden Tipp sehr dankbar...

LG Silke[/b]
 

L-ectron-X

Gesperrter Benutzer
Eine "unbekannte" Klasse registrieren? Dazu sind wirklich sehr gut Interfaces geeignet.
Die Objekte, die registriert werden können, brauchen nur ein bestimmtes Interface implementieren.
Somit erhalten auch völlig unterschiedliche Objekte gemeinsame Eigenschaften. Du registrierst dann quasi nur Objekte des Interface-Typs. Deine Klasse muss gar nicht wissen was für ein Objekt sich registriert, Hauptsache das Interface wird von diesem Objekt implementiert.
 
S

silke bischof

Gast
danke für die unterstützung und den tipp, das ich auf dem richtigen weg bin.

nur habe ich das problem, das ich das registrieren über das interface nicht hinbekomme. eclipse weigert sich bei mir verschiedene klassen, die ein interface implementiert haben, gleich zubehandeln. vielleicht liegt es auch ganz einfach daran, das ich nicht weiß, wie man das mit interface macht.

deshalb wäre ich über ein beispiel hier im forum sehr dankbar...

schon tausend dank, an die person, die sich die zeit nimmt, mir weiterzuhelfen...

dankeschön
 
G

Guest

Gast
Code:
public class Message
{
  ... was auch immer
}

public interface MessageHandler
{
  public void handleMessage(Message msg);
}

public class ConcreteMessageHandler implements MessageHandler
{
  ...
  public void handleMessage(Message msg)
  {
    ...
  }
}

public class MessageDispatcher
{
  private ArrayList msgHandlerList = new ArrayList(20);
  ...
  public void addMessageHandler(MessageHandler obj)
  {
    if(!msgHandlerList.contains(obj))
      msgHandlerList.add(obj);
  }

  public void removeMessageHandler(MessageHandler obj)
  {
    msgHandlerList.remove(obj);
  }

  public void fireMessage(Message msg)
  {
    for(Iterator i = msgHandlerList.iterator(); i.hasNext();)
    {
      ((MessageHandler)i.next()).handleMessage(msg);
    }
  }
}

...

MessageDispatcher d = new MessageDispatcher();
MessageHandler h = new ConcreteMessageHandler();
d.addMessageHandler(h);
d.fireMessage(new Message("Buuuh"));
 
B

bygones

Gast
gasts methode ist die gebräuchliche methode wie im groben auch die Events in Java gehandhabt werden - also zu empfehlen...

antworte eigentlich nur weil dein Name mich an meine Lieblingsband von früher erinnert... dat war schön ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Thymleaf Methodenaufruf Allgemeine Java-Themen 4
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
A Methodenaufruf funktioniert nicht richtig Allgemeine Java-Themen 5
mrbig2017 Kapselung Methodenaufruf in DLL schlägt fehl! Allgemeine Java-Themen 1
S Methodenaufruf in Unterklassen Allgemeine Java-Themen 3
F Methodenaufruf mit abgeleiteter Klasse als Arg... Allgemeine Java-Themen 10
O Zeitbedingter Methodenaufruf Allgemeine Java-Themen 1
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
D Frage und Antwort Programm, Problem bei Methodenaufruf Allgemeine Java-Themen 3
127.0.0.1 Methodenaufruf -cannot find symbol- Allgemeine Java-Themen 14
S Methoden Unerwarteter Methodenaufruf Allgemeine Java-Themen 5
T Polymorphie Statischer Methodenaufruf einer Kindsklasse Allgemeine Java-Themen 4
pg1337 Methodenaufruf Allgemeine Java-Themen 22
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
R Java Parameterabfrage bei Methodenaufruf Allgemeine Java-Themen 4
MQue Performance Methodenaufruf - if Abfrage Allgemeine Java-Themen 19
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
S Bekomme nullwerte bei methodenaufruf in versch. Klassen Allgemeine Java-Themen 16
W Sequentieller Methodenaufruf -> UML Allgemeine Java-Themen 10
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
S Methodenaufruf per String? Allgemeine Java-Themen 4
G Fehler bei Methodenaufruf Allgemeine Java-Themen 30
P Methodenaufruf von catch Allgemeine Java-Themen 2
MQue Methodenaufruf auf der Insel Allgemeine Java-Themen 4
MQue Methodenaufruf von wem? Allgemeine Java-Themen 11
egrath Zu langsamer Methodenaufruf Allgemeine Java-Themen 4
N Methodenaufruf wiederholbar machen? Allgemeine Java-Themen 2
H Methodenaufruf Allgemeine Java-Themen 5
D Probleme mit Methodenaufruf von Klasse in dll (jni) Allgemeine Java-Themen 19
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
byte Methodenaufruf per Reflection? Allgemeine Java-Themen 2
B Methodenaufruf Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben