Wenn ich Signal richtig verstehe, ist dies eine asynchrone Nachricht zwischen zwei oder mehr Objekten. Zum Beispiel haben wir in UML einen Signalklassifikator:
%Vor%Dann können wir dieses Signal wie folgt in Java schreiben:
%Vor%Allerdings haben wir in Java eine CLASS, aber in UML haben wir einen SIGNAL-Klassifikator, aber keinen CLASS-Klassifikator ( Update: ich meine in diesem Beispiel ). Wie erklärt man es?
Ihre Diskussion über UML-Signale ist korrekt.
Aus der Spezifikation:
10.3.3.1 Signale
Ein Signal ist eine Spezifikation einer Art von Kommunikation zwischen Objekten, in denen eine Reaktion asynchron ausgelöst wird im Empfänger ohne Antwort. Das empfangende Objekt behandelt Signale wie in Klausel 13.3 angegeben. Die Daten, die von der Kommunikation werden als Attribute des Signals dargestellt. Ein Signal wird unabhängig von der Handhabung des Klassifikators definiert es.
Allerdings haben wir in Java eine CLASS, aber in UML haben wir einen SIGNAL-Klassifikator, aber keinen CLASS-Klassifikator. Wie erklärt man es?
11.4 Klassen
... Der Zweck einer Klasse besteht darin, eine Klassifizierung von Objekten anzugeben und die Merkmale anzugeben, die die Struktur und das Verhalten dieser Objekte kennzeichnen .
11.4.4 Schreibweise
Eine Klasse wird mit dem Classifier-Symbol angezeigt. Da Class der am häufigsten verwendete Klassifizierer ist, wird kein Schlüsselwort benötigt , um anzugeben, dass es sich bei der Metaklasse um eine Klasse handelt.
UML ist programmiersprachenunabhängig.
In Java werden Klassen- und Signalklassifizierer von UML als Klassen implementiert.
Ein anderes Beispiel: UML hat einen Schnittstellen-Klassifizierer, aber C ++ hat keinen Schnittstellen. Eine Schnittstelle in C ++ wäre eine abstrakte (rein virtuelle) Klasse.