1

我想绘制一个 UML 类,其中我唯一指定的是操作的名称。换句话说,没有属性隔间,方法隔间包含方法的名称,但没有参数。我已经阅读了 UML 参考指南,显然我可以做这样的事情

--------------
|    Car      |
--------------
|changeChassis|
--------------

其中 Car 是类名,而 changeChassis 是一个方法,它接受我不想指定其类型的参数。换句话说,上述类的 Java 实现可能是

public class Car {
     private String chassis;
     public void changeChassis(String chassis) {
          this.chassis=chassis;
}

问题是我的图表模棱两可。我省略了属性隔间,但没有参数列表,我的方法 changeChassis 可能是一个属性。

我读过的一些文本建议您可以使用空参数列表来指示操作,即使该操作实际上确实需要参数。例如,您可以编写 changeChassis() ,即使您所指的操作实际上是要采用参数。但是 UML 参考不允许这样做,而且它显然是模棱两可的。

另一种解决方案是只放入一个空的属性隔间。例如:

--------------
|    Car      |
--------------
|             |
--------------
|changeChassis|
--------------

但是 UML 参考说你不能这样做,除非类真的没有属性。

有没有什么方法可以做我想做的事,遵守标准,避免歧义?

4

2 回答 2

2

NO this is a very bad practice, at the first your demo doesn't have any method, in fact the developer find the changeChassis as an attribute, this is possible that omit the return type of void method, or omit the name of input arguments, but this is not recommended.
you need to specify the whole class structure.
enter image description here

于 2013-10-28T10:00:55.883 回答
1

根据UML 规范,您当然必须用它的名称、参数和括号来表示操作。如果省略参数,但保留空括号,它将与具有相同名称但参数不同的其他可能操作产生歧义。如果省略参数和括号,它将与具有相同名称但不是相同名称的其他可能操作产生歧义相同的参数,但也有属性...

于 2013-10-28T09:11:49.193 回答