Das "Publisher-Subscriber" -Paar-Muster (a.k.a "Observer") kann in jedem Programmier- (Sprach-) Framework anders implementiert sein, daher anders entworfen, in U.M.L.
Jeder Weg, konzeptionell, wenn ein Ereignis ("Signal" oder "Nachricht") gesendet wird, von einem Herausgeber (aka "Server") zu jedem Abonnenten ("Client"), manchmal eine "ID" zu identifizieren ein bestimmtes Ereignis, von anderen Ereignissen, seine zur Verfügung gestellten und einige zusätzliche Parameter oder Daten werden ebenfalls gesendet.
Wie andere Antworten bereits erwähnen, benötigen Sie möglicherweise ein (Klassen-) Diagramm, um das statische Modell zu beschreiben. (Beachten Sie, dass es eine „Aggregation“, nicht „Zusammensetzung“, „Verein“ verwendet werden kann):
..............................
+--------------------------+..
| <<Publisher>> |..
| VectorDrawApp |..
+--------------------------+..
| [+] create() |..
+--------------------------+..
| [+] send(EventArgs e) |..
+------------+-------------+..
............/ \...............
............\ /...............
.............|................
.............|................
+------------+-------------+..
| <<Subscriber>> |..
| Figure |..
+--------------------------+..
| [+] create() |..
+--------------------------+..
| [+] receive(EventArgs e) |..
+--------------------------+..
..............................
+--------------------------+..
| <<Event>> |..
| EventArgs |..
+--------------------------+..
| [+] Sender: TObject |..
+--------------------------+..
| [+] receive(EventArgs e) |..
+------------+-------------+..
.............|................
.............+................
............/ \...............
...........+---+..............
.............|................
+------------+-------------+..
| <<Event>> |..
| FillEventArgs: EventArgs|..
+--------------------------+..
| [+] ForeColor |..
| [+] BackColor |..
| [+] FillStyle |..
+--------------------------+..
..............................
Und auch, können Sie ein Diagramm benötigen das dynamische Modell zu beschreiben:
.........................................
+----------------+..+----------------+...
| <<Publisher>> |..| <<Subscriber>> |...
| VectorDrawApp |..| Figure |...
+--------+-------+..+--------+-------+...
.........|...................|...........
.......+-+-+...............+-+-+.........
.......| |...send(fill)..| |..Fill().
.......| +==============>+ +---+.....
.......| |...............| |...|.....
.......| |...<<return>>..| |...|.....
.......| |<--------------+ +<--+.....
.......| |...............| |.........
.......+-+-+...............+-+-+.........
.........|...................|...........
.........X...................X...........
.........................................
Stereotypen, in UML, sind Ihre "Saufkumpel", und ermöglichen es Ihnen, zu beschreiben oder einzuschränken, was ein Akteur, Objekt, Klasse, Merkmal oder Schnittstelle tut.
Wenn Sie sie verwenden, markieren, wenn ein Objekt oder eine Klasse, Subklassen einer Klasse sind, oder implementieren, eine Schnittstelle, die für die Aktivitäten relevant ist, das Modell gewesen, auch wenn es andere Eltern-Klassen sind, oder Schnittstellen.
Prost.
Liebe diese bezaubernden ASCII-Diagramme! +1 –