我有一个相当基本的基于C#事件的系统,但我不确定我是如何在UML中建模的.我很想显示事件发布者,订阅者,处理程序和EventArgs类.我认为你使用'信号'但我找不到任何例子.任何人都能指出一个例子或任何光明吗?
谢谢
编辑:我正在创建一个静态模型,我不需要在整个过程中表示状态或路径.对不起,如果我在最初的问题中没有说清楚的话......
"发布者 - 订阅者"对模式(又名"观察者")可以在每个编程(语言)框架中实现不同,因此,在UML中设计不同
任何方式,在概念上,当被发送的事件("信号"或"消息"),从发布者(又名"服务器"),以任何用户("客户端"),有时,一个"id",以识别特定事件,来自其他事件,它提供的,以及一些其他参数或数据也发送.
正如其他答案已经提到的那样,您可能需要(类)图来描述静态模型.(注意,有一个"聚合",而不是"组合","关联"可以使用):
..............................
+--------------------------+..
| <<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 |..
+--------------------------+..
..............................
Run Code Online (Sandbox Code Playgroud)
而且,您可能需要一个图表来描述动态模型:
.........................................
+----------------+..+----------------+...
| <<Publisher>> |..| <<Subscriber>> |...
| VectorDrawApp |..| Figure |...
+--------+-------+..+--------+-------+...
.........|...................|...........
.......+-+-+...............+-+-+.........
.......| |...send(fill)..| |..Fill().
.......| +==============>+ +---+.....
.......| |...............| |...|.....
.......| |...<<return>>..| |...|.....
.......| |<--------------+ +<--+.....
.......| |...............| |.........
.......+-+-+...............+-+-+.........
.........|...................|...........
.........X...................X...........
.........................................
Run Code Online (Sandbox Code Playgroud)
UML中的刻板印象是你的"喝酒伙伴",允许你描述或限制演员,对象,类,特征或界面的作用.
使用它们时,突出显示对象或类,类的子类或实现时,与活动相关的接口,即模型,即使存在其他父类或接口.
干杯.