Komponenten kommunikation

PollerJava

Top Contributor
Hallo,

ich hätte eine Frage zu den Komponenten,
wenn ich 2 Komponenten habe, dann kann ich die Kommunikation dieser 2 Komponenten über den Lollipop einzeichnen.
Wenn jetzt in der Komponente 1 Methoden in der Komponente 2 aufgerufen werden und umgekehrt, dann heißt das ja, dass ich das zeichnen muss, oder


Code:
   K1   -------| ----------  K2
         -------- |---------

also K1 ruft Methoden auf K2 auf und umgekehrt (der senkrechte Strich sollte ein Kreis sein welcher Methoden anbietet)
Weiß da jemand bescheid wie man das macht?
Vielen Dank,
lg
 

Andi_CH

Top Contributor
"und umgekehrt" deutet auf extrem schlechtes Design hin - um das aufzulösen gibt es verschiedene Pattern.

Keine Ahnung wie man dem sagt, aber unten habe ich dir eines aufgezeigt.

Lolipop???:L Das erinnert mich an Kojak bzw. Telly Savallas und Glatze, aber was hat das mit Software zu tun?
Meine Noch leicht getrübte Glaskugel lässtm ih vermuten, dass du die UML has bzw. using Assoziation meinst - das sind aber zwei ganz unterschiedlich Sachen.

Das unten sind lauter has-Assoziationen, weil die Klassendie Objekte der jeweils anderen Klasse exklusiv (private und ohne getter) für sich alleine haben.

Dann noch ein Hinweis - wenn du CODE-Tags verwendest, wird deine ASCII-Grafik viel schöner dargestellt.


Also so nicht!
Java:
public class A {
	private B aB = new B();

	public void f1() {aB.f2();}
	public void f2() {f3(); }
	public void f3() {} // die wird von A und B verwendet
}

Java:
public class B {
	private A anA = new A();

	public void f1() {anA.f3();}
	public void f2() {}
}


So gehts:
Java:
public class A {
	private B aB = new B();
	private C aC = new C();

	public void f1() {aB.f2();}
	public void f2() {aC.f3();}
}
Java:
public class B {
	private C aC = new C();

	public void f1() {aC.f3();}
	public void f2() {}
}
Java:
package com.javaforum.dependency;

public class C {
	public void f3() {}
}
 

PollerJava

Top Contributor
Besten Dank für die Info, das ist nicht ganz das, was ich gemeint habe.
Wenn ich folgendes habe:

pollerjava-albums-komponenten-picture206-diagram1.png


Dann ist es ja so, dass laut Wikipedia der Kreis eine Schnittstelle anbietet und der Halbkreis benötigt die Schnittstelle: Also Komponente 2 benötigt Komponente 1 wenn ich das richtig versteh.

Mir geht es jetzt darum, ich möchte die Kommunikation zwischen diesen 2 Komponenten darstellen, also so in der Art:

(auf Komponentenebene - nicht auf Klassenebene - Klassenebene ist schon zu feingranular)
Komponente 1 ruft eine Methode method1() von Komponente 2 auf, nach dem Aufruf der Methode method1() wird von der Komponente 2 aus die Methode method1() der Komponente 1 aufgerufen usw.
Also das ist ja ein Wechselspiel von aufrufen, da kann ich ja nicht sagen, dass Komponente 2 die Schnittstelle von Komponente 1 benötigt?
Oder wie würdet Ihr das UML- Standard gemäß darstellen?
Vielen Dank,
lg
 
T

Tomate_Salat

Gast
Hört sich für mich nach einem Service und Endlosschleife gleichzeitig an. Mit OSGi kannst du z.B. Services bereitstellen. Das andere "Modul" oder wie es in OSGi genannt wird: Bundle muss nur die Schnittstelle kennen.

Beschreibe vllt mal ein konkretes Beispiel. Denn das was du beschreibst, ergibt für mich nur teilweise einen Sinn.
 

PollerJava

Top Contributor
Ich möchte ein konkretes FW jezt mal außen vor lassen, das Diagramm sollte Sprach und FW unabhängig sein.
Also, ein konkretes Beispiel wäre:

Es gibt eine Komponente "Zentrale" und eine Komponente "Spieler" - diese Kommunizieren über Remote Procedure call bzw. RMI:

Code:
1. Die Zentrale wird gestartet
2. nach dem Starten der Zentrale kann sich ein Spieler anmelden, d.h. der Spieler ruft über RPC eine    Methode der Zentrale auf.
3. die Zentrale sendet dem Spieler den aktuellen Spielstand, d.h. die Zentrale ruft über RPC eine Methode am Spieler auf.
4. Spieler möchte Würfeln, d.h. der Spieler ruft übe RPC eine Methode auf der Zentrale auf 

usw.

Das sind ja wechselseitige Methodenaufrufe vom Spieler zur Zentrale und auch von der Zentrale zum Spieler.
Meine Frage wäre jetzt eben, wie man sowas darstellt mittels UML- Komponentendiagramm.
Da kann ich ja nicht sagen, Zentrale bietet ein Interface an und Spieler implementiert das Interface, da ja auch Spieler ein Interface anbietet und Zentrale dieses implementiert - oder sehe ich da was falsch?
lg
 
N

nillehammer

Gast
Ich glaube, Du schmeißt da jetzt Komponentendiagramme mit Interaktionsdiagrammen zusammen. Komponentendiagramme sind eine etwas gröbere Sicht auf das System. In Deinem Beispiel mit Zentrale und Spieler: Komponente Server bietet an RPC: Komponente Client nutzt RPC. Für die Darstellung der einzelnen Methodenaufrufe kommen eher andere Diagrammtypen (z.B. Kommunikationsdiagramm oder Sequenzdiagramm) in Fage.
 

Andi_CH

Top Contributor
Auch auf Komponentenebene soll nicht gegenseitig zugegriffen werden. Auch hier greifen Pattern wie Dependency inversion oder ähnliche.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
M Monitoring JMX-Komponenten Allgemeine Java-Themen 0
Fab1 Komponenten eines zweiten Java Programms auslesen Allgemeine Java-Themen 8
S Applet nicht signierte Komponenten feststellen Allgemeine Java-Themen 6
J Java Komponenten / Framework Allgemeine Java-Themen 5
N Gridbaglayout - Abstände zwischen Komponenten einstellen Allgemeine Java-Themen 2
C Komponenten einer WebSeite Allgemeine Java-Themen 4
B Eingabemaske Komponenten aktivieren, funktionert nicht (sehr kurios) Allgemeine Java-Themen 2
T JXPanel mit seinen Komponenten auf PDF mit iText ausgeben Allgemeine Java-Themen 15
J Modul/Komponenten/Addon-Programmierung Allgemeine Java-Themen 3
sliwalker Designfrage: Dateninhalte in Komponenten variabel halten Allgemeine Java-Themen 4
G SWT Komponenten ausdrucken ? Allgemeine Java-Themen 3
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue Fokus von Komponenten/JFrame Allgemeine Java-Themen 3
Z variabel Komponenten erstellen oder Compie Allgemeine Java-Themen 4
A Komponenten binär in Datei schreiben Allgemeine Java-Themen 11
G Panel mit vielen Komponenten verbraucht viel Speicher Allgemeine Java-Themen 3
R Umstieg von Delphi (Komponenten) Allgemeine Java-Themen 4
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
B Grafische Oberfläche - Welche Komponenten? Allgemeine Java-Themen 5
CptK Backpropagation parallelisieren: Kommunikation zwischen den Threads Allgemeine Java-Themen 7
L Kommunikation zwischen C# und Java? Allgemeine Java-Themen 5
R PIPE Kommunikation mit Prozess blockiert Allgemeine Java-Themen 0
M Checksummenprüfung bei Client Server kommunikation Allgemeine Java-Themen 3
D Interthread-Kommunikation Allgemeine Java-Themen 6
S Threads Kommunikation zwischen SocketThread und WorkerThread Allgemeine Java-Themen 11
0 Lösungsweg Client Server Kommunikation Fehlermeldung ausgeben Allgemeine Java-Themen 12
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
F Serielle Kommunikation Allgemeine Java-Themen 20
A Kommunikation zwischen 2 Jar-dateien Allgemeine Java-Themen 16
S Kommunikation von Core und GUI über Schnittstellen Allgemeine Java-Themen 2
L Serielle Kommunikation Allgemeine Java-Themen 6
G Implementierung einer Kommunikation Allgemeine Java-Themen 7
B SerialPort Kommunikation - Pufferüberlauf Allgemeine Java-Themen 6
0 Sandbox und Applet Kommunikation Allgemeine Java-Themen 9
E kommunikation zwischen Fenstern Allgemeine Java-Themen 3
H Java C++ Interprozess Kommunikation Allgemeine Java-Themen 7
D Klassen Kommunikation Allgemeine Java-Themen 11
M Applet Servlet Kommunikation ein Problem bei externem Server Allgemeine Java-Themen 3
F Kommunikation zw 2 Java-Programmen mit unterschiedl Compiler Allgemeine Java-Themen 13
G Kommunikation mit Remotegeräten Allgemeine Java-Themen 2
A Kommunikation zwischen C++ und Java-Programm Allgemeine Java-Themen 4
J Kommunikation mit USB Gerät, das Midi-Signale sendet Allgemeine Java-Themen 4
G Kommunikation mit der seriellen Schnittstelle Allgemeine Java-Themen 6
H Kommunikation mit einem c-Prozess funzt nicht richtig Allgemeine Java-Themen 5
C Pattern für Kommunikation gesucht Allgemeine Java-Themen 3
B Kommunikation mit entferntem Thread Allgemeine Java-Themen 6
O kommunikation zw. objekten Allgemeine Java-Themen 7
G Kommunikation von zwei Java-Programmen Allgemeine Java-Themen 3
N Inter-Thread-Kommunikation Allgemeine Java-Themen 3
M Kommunikation mit externem Programm ueber Linux-Pipes Allgemeine Java-Themen 4
M Kommunikation zwischen 2 Programmen Allgemeine Java-Themen 7
G Kommunikation zwischen Threads und Gui Allgemeine Java-Themen 2
T Kommunikation mit batch datei Allgemeine Java-Themen 3
P kommunikation zwischen dialog und threads Allgemeine Java-Themen 4
K MVC - Kommunikation Controller <> Gui Allgemeine Java-Themen 5
P Kommunikation von Threads Allgemeine Java-Themen 5
V Kommunikation zwischen Programmen und Threads Allgemeine Java-Themen 7
H Servlet/Applet Kommunikation Allgemeine Java-Themen 2
C Kommunikation mit USB Port Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben