我试图代表以下情况,涉及使用UML 2在C ++中构建GUI的情况:有一个用C ++编写的程序,该程序具有MainWindow类,该类在构造过程中实例化GameManagementInterfacePanel类。MainWindow的构造函数需要对GameManager对象的引用作为参数。引用的GameManager是传递给GameManagementInterfacePanel构造函数的那个​​。GameManager对象永远不会使用MainWindow对象的界面。尽管我尚未这样做,但我相信GameManager对象可以(应该!)被预先声明(在C ++中)。我的问题是,在UML上下文中,MainWindow类当前是否使用或什至依赖于GameManager类?根据UML参考手册第二版的词汇表,“用法”定义为:  一种依赖关系,其中一个元素(客户)要求另一个元素(供应商)存在以实现其正确的功能或实现。在《 UML用户指南(第二版)》的“术语和概念”部分中,“使用”依赖项构造型的功能定义如下:  指定源元素的语义取决于目标的公共部分的语义第一个描述似乎表明应将其显示为使用依赖项(具有<<use>>构造型)。第二个对我来说似乎不太清楚,因为MainWindow不依赖于GameManager的“公共部分”。也许我没有足够的精力来解决这一问题(根据UML文档,这是正确的)。要么那个,要么我什么都不知道。我觉得我想在特定的类图中显示依赖关系,但是我不确定其他人是否会认为这有助于理解或只是使图变得复杂。我可能会继续展示它,因为对我而言,它有助于理解和交流(这就是最终目的)。我只是对别人认为正确的事感到好奇。 最佳答案 据我了解:MainWindow不是使用GameManager,而是依赖于它MainWindow不仅会使用GameManagementInterfacePanel,而且还会创建它(因此您可以使用创建原型)我不知道GameManagementInterfacePanel是否使用GameManager,但至少取决于它。通常,如果更改B会引起对A的更改,则元素A与元素B之间的任何关系都是从属关系:  “依赖关系表明对一个模型元素的更改  (供应商或独立模型元素)可能会导致  另一个模型元素(客户或从属模型元素)。的  供应商模型元素是独立的,因为客户发生了变化  不会影响它。客户模型元素取决于供应商  因为供应商的变更会影响客户。”。  (source)可以添加有关关系类型的更多信息,因为您可以具有几种依赖关系类型:>(如果A正在使用B的公共接口),>(如果A正在实例化B),>(如果A数据绑定到B数据),等等。除了UML standard profile之外,还可以添加其他构造型,以使A-> B依赖关系与某些其他语义信息专门化。因此,IMO,是的,将这些信息也传达给图表的读者很有用。例如,具有以下关系:MainWindow-> GameManager(简单的依赖关系,但是如果您想突出与读者的特定关系,也可以编写MainWindow-import-> GameManager)MainWindow->-> GameManagementInterfacePanelGameManagementInterfacePanel->-> GameManager关于c++ - 在UML中,是否将对象作为参数实例化另一个对象(本身)构成了第一个对象的用法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9509825/
10-11 16:18