如果我正确理解信号,这是两个或多个对象之间的异步消息。例如,在UML中,我们有一个信号分类器:
-----------------
| << signal >> |
| SomeEvent |
-----------------
|id:Int |
|text:String |
-----------------
|getId() |
|getText() |
-----------------然后我们可以用Java编写这个信号,如下所示:
class SomeEvent{
private final int id;
private final String text;
//+constructor + getters
}然而,在Java中我们有一个类,但是在中我们有一个信号分类器,但是没有一个类分类器(更新:我指的是在这个例子中的)。怎么解释?
发布于 2015-12-10 09:50:42
您对UML信号的讨论是正确的。
从规范:
10.3.3.1信号 信号是一种对象间通信的规范,在这种通信中,在接收端异步地触发了一个反应,而没有应答。接收对象处理第13.3条所指定的信号。通信所携带的数据表示为信号的属性。信号是独立于处理它的分类器定义的。
然而,在Java中我们有一个类,但是在UML中我们有一个信号分类器,但是没有一个类分类器。怎么解释?
11.4类 ..。类的目的是指定对象的分类,并指定描述这些对象的结构和行为的特性()。 11.4.4符号 使用分类符号显示一个类。由于Class是中使用最广泛的分类器,因此需要使用no关键字来指示元类是类。
发布于 2015-12-10 09:43:54
事实上,UML比Java更丰富。在UML中,信号、类、组件和协作分类器概念将对应于Java类。
https://stackoverflow.com/questions/34197071
复制相似问题