繁体   English   中英

UML类图:如何省略属性区并省略操作区中的参数?

[英]UML Class Diagram: How do I omit attribute compartment AND omit parameters in operation compartment?

我想绘制一个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参考文献表示除非该类真正没有属性,否则不能这样做。

有没有办法按照标准做我想做的事情,避免含糊不清?

不,这是一个非常糟糕的做法,首先你的demo没有任何方法,实际上开发人员发现changeChassis是一个属性,这可能省略了void方法的返回类型,或者省略了输入参数的名称,但不建议这样做。
你需要指定整个类结构。
在此输入图像描述

根据UML规范 ,您必须使用其名称,参数和制动器来表示操作。 如果省略参数,但保留空的brakets,它将与其他可能具有相同名称但不具有相同参数的操作有歧义。如果省略参数和brakets,它将与其他可能具有相同名称但不具有相同名称的操作有歧义相同的参数,但也有属性......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM