簡體   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