2013-03-19 36 views
1

我想繪製一個序列圖。 一個類爲類B的一個實例調用函數f。 類B由兩個接口X和Y實現。如何在由多個接口實現的序列圖中顯示一個函數?

X和Y都實現f。我應該如何表示f函數來自接口X或Y?

+0

類**由**接口實現? – Javier 2013-03-19 15:13:02

+1

如果您的意思是'B' **實現**兩個接口'X'和'Y',是否與'Y.f'一樣是'X.f',還是它們是不同的方法?如果它們不同,爲什麼函數來自*接口? (我假設在執行A時會知道它是否要調用'X.f'或'Y.f') – Javier 2013-03-19 15:20:50

+1

@Javier是的,這個類是通過接口實現的。是的,我的意思的確是X.f或Y.f,我們要在UML圖中顯示哪個f被調用(X.f或Y.f)。從調用類到類B的序列圖中,可能只有一個X.f會執行,但我想知道。在線上是'正確的'UML。 – 2013-03-19 15:33:01

回答

1

使用X::fY::f(即兩個冒號,而不是點)

UML規範說

一個CallEvent被觸發操作的名稱(...)

表示
<call-event> ::= <name> [‘(‘ [<assignment-specification>] ‘)’] 

接口是命名空間(通過分類器)的專業化,那麼適用於:

如果名稱爲N的名稱空間的成員是名稱爲x的NamedElement,則該成員可以由形式爲N :: x的合格名稱引用。

+0

謝謝......太糟糕了Borland Together不支持這個(它認爲後面的部分是一個返回值並將其從箭頭移除到時間線。 – 2013-03-19 15:55:55

相關問題