2017-10-28 134 views
1

我一直在尋找一種方法來做這件事一段時間,我找不到任何答案。這裏是我的情況的快速解釋:在類圖上顯示靜態引用 - Visual Studio 2017

在我的解決方案中有一些「經理類」,它有一個靜態引用本身。例如:

public static UIManager Instance; 
Instance = this; 

所有這些管理器類都在應用程序開始時執行。因此,在任何給定點的任何類都可以撥打:

UIManager.Instance.DoSomething(); 

一切是偉大的,到現在爲止,我要創建一個類圖。

Visual Studio類圖功能可以使用'Show Assossiation'選項跟蹤引用。例如,對於同一個UIManager,我得到:enter image description here

這是因爲UIManager類具有對PauseMenu類的引用。

但是,通過靜態實例變量與UIManager通信的'AreaChecker'類沒有任何鏈接顯示在類圖中。

enter image description here

這種聯繫是很重要的,因爲,在這個例子中,只有AreaChecker正常工作,如果UIManger類的項目。

我希望能夠自動創建該鏈接。這是通過類圖支持的嗎?如果是這樣,我該怎麼做?如果沒有,我應該下載另一個插件/程序來做到這一點?

+0

爲什麼'AreaChecker'有鏈接?去哪兒?不知道代碼,我們應該怎麼猜?順便說一句:您的實例名稱應以小寫字母開頭,以區別於類型。 –

+0

謝謝你的回答托馬斯。如果我沒有說清楚,我很抱歉。 我想要一個鏈接,因爲'AreaChecker'通過靜態引用'Instance'從'UIManager'調用一個方法。 像這樣:'UIManager.Instance.Method()'。如果沒有'UIManger','AreaCheker'將無法正常工作。 所以這就是爲什麼我想要這個鏈接,所以我可以看到什麼是真正連接。 對於名稱,我使用小寫字母作爲私人變量,大寫字母使用大寫字母。由於'Instance'是靜態的,所以我將它命名爲大寫。 – Roiw

回答

0

UML沒有靜態變量的概念。所以不可能有一個關聯引用它。您可以手動添加這種關聯並以某種方式對其進行刻板印刷(例如<<static>>)。這是您需要在域的建模規則中描述的某種工作。

+0

有趣......我對這個程度的標準並不熟悉,但直覺上它似乎是一個虛線箭頭(依賴)。 – Fuhrmanator

+0

@Fuhrmanator依賴關係只是最薄弱的環節。你也可以使用它。這只是鏈接的含義。 –