gpt4 book ai didi

events - 如何在静态 UML 模型中表示基于事件的架构?

转载 作者:行者123 更新时间:2023-12-04 11:46:08 25 4
gpt4 key购买 nike

我有一个相当基本的基于 C# 事件的系统,但我不确定如何在 UML 中对其建模。我显然想展示事件发布者、订阅者、处理程序和 EventArgs 类。我认为您使用“信号”,但我找不到任何示例。谁能给我举个例子或阐明一下?

谢谢

编辑:我正在创建一个静态模型,我不需要表示整个过程的状态或路径。抱歉,如果我在最初的问题中没有说清楚..

最佳答案

“发布者-订阅者”对模式(又名“观察者”)可能在每个编程(语言)框架中实现不同,因此在 U.M.L. 中设计不同。

任何方式,从概念上讲,当一个事件(“信号”或“消息”)从发布者(又名“服务器”)发送到任何订阅者(“客户端”)时,有时,一个“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 |..
+--------------------------+..
..............................

此外,您可能需要一个图表来描述动态模型:
.........................................
+----------------+..+----------------+...
| <<Publisher>> |..| <<Subscriber>> |...
| VectorDrawApp |..| Figure |...
+--------+-------+..+--------+-------+...
.........|...................|...........
.......+-+-+...............+-+-+.........
.......| |...send(fill)..| |..Fill().
.......| +==============>+ +---+.....
.......| |...............| |...|.....
.......| |...<<return>>..| |...|.....
.......| |<--------------+ +<--+.....
.......| |...............| |.........
.......+-+-+...............+-+-+.........
.........|...................|...........
.........X...................X...........
.........................................

在 U.M.L. 中,刻板印象是你的“酒友”,
并允许您描述或限制 Actor 、对象、类、
特质,或接口(interface)。

当你使用它们时,突出显示一个对象或类,
是类的子类,或实现,
与事件相关的界面,
是模型,即使有其他父类,
或接口(interface)。

干杯。

关于events - 如何在静态 UML 模型中表示基于事件的架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com