2017-10-28 139 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依赖关系只是最薄弱的环节。你也可以使用它。这只是链接的含义。 –