2011-07-07 164 views
1

在UML中是否有標準的方法來模擬與對象交互的幾個靜態方法(不是類的一部分)?我正在開發一個項目,該項目使用JNI(Java Native Interface)來支持Android上的C++代碼。UML:包含靜態函數

我打算簡單地將函數集合當作另一個類來處理,但覺得必須有更好的方法。我應該完全忽略JNI,只包含它們代表的Java類嗎?

回答

1

在某些情況下,模塊或名稱空間可被視爲「對象」。

你可以用非對象函數「封裝」你的庫作爲「對象」,並添加一個原型。

 
+-----------------------------------------------------------+ 
|..........................<<library>>......................| 
|.............................Strings.......................| 
+-----------------------------------------------------------+ 
|..+...String:..Date2Str(Date Value)........................| 
|..+...String:..Mid(String Source, int Index, int Count)....| 
|..+...String:..Reverse(String Source)......................| 
+-----------------------------------------------------------+ 

乾杯。

1

從根本上說,UML採用OO範式。所以它不提供第一類功能。因此,模擬函數的唯一方法是使用方法(基於類或實例)。

唯一的另一種選擇是通過函數來​​實現,即爲每個函數分配一個類。不過,我不確定那真的是你以後的事情。

我打算簡單地治療 收集的功能作爲另一個 類

這可能是我想建議。

我應該忽略JNI完全和 只是包括他們 代表的Java類?

取決於您試圖在模型中顯示的內容。觀衆瞭解通過JNI調用函數是否重要?或者相反,更多的目的是「域模型」(即顯示概念實體以及它們如何關聯和抽象實現語言選擇)?

hth。

0

UML是一種建模語言,用於面向對象的系統。所以它沒有任何獨立靜態函數的構造。

您可以爲您的靜態方法創建一個Facade類,並顯示該Facade和Java類的交互。

但無論如何,首先你應該問:

我會得到什麼樣的好處通過展示那些在我的UML圖?

如果UML不能幫助您「爲了您的利益」,請使用其他工具。即使您的目標是向其他人展示您的內部結構,您也可以通過編程方式編輯您的基礎設施,並記錄視頻,然後將其提供給觀衆。