【发布时间】:2014-01-15 11:02:10
【问题描述】:
为什么以及如何使用依赖关系?
我遇到了PiggyBank example,其中分析模型由具有依赖关系的类图组成。
他们使用“使用”和“实例化”两种关系来描述类之间的关系。
我不同意边界类 TransferMoneyForm 对 TranferMoneControl 有“用途”的关系。我认为应该反过来。
谁能向我解释这两种关系应该如何使用。先感谢您。
【问题讨论】:
为什么以及如何使用依赖关系?
我遇到了PiggyBank example,其中分析模型由具有依赖关系的类图组成。
他们使用“使用”和“实例化”两种关系来描述类之间的关系。
我不同意边界类 TransferMoneyForm 对 TranferMoneControl 有“用途”的关系。我认为应该反过来。
谁能向我解释这两种关系应该如何使用。先感谢您。
【问题讨论】:
图中显示的不是正确和完整的 UML 类图。 在这种情况下,应该定义所有关联和概括,以及什么是抽象的,什么是公共的。显示什么来自什么,什么是隐藏的,什么永远不会被实例化,以及一个类的哪些字段具有其他类的类型。在这里,我们只看到有关 职能。
这是合乎逻辑的。如果你看前一章,上面写着:“一个控制类代表一个自包含的进程……”所以,他们谈论的是进程,而不是类、实例和字段。
这不是类图。没有任何地方说它是。它被命名为“转移资金参与者图”。他们确实使用了类图的元素,但没有充分利用,因此创造了更常见的东西。它是一些类上的一些近似的未定义图,类之间的一些东西,通信或组件图。也许,这是IBM的老风格?专家(What's the best UML diagramming tool?,第一个答案)说,“IBM Rational Software Architect 没有实现 UML 2.0”。 )
至于问题,谁使用谁......根据 Sparx VP UML,“使用依赖”是一种“一个元素需要另一个元素......才能获得完整功能的关系”。根据 wiki,“客户端元素以某种方式“使用”供应商”。在这里,如果没有控制类,表单就没有意义,反之亦然。所以,我会说,使用在双方。但更诚实的是创建一个正常的通信或组件图。类图没有关于发送和接受消息的元素。而“用”绝对不是为了它。当他们决定不使用逻辑时,他们几乎可以放任何东西。
如果您正在制作一个类图,并且您的一个类使用另一个类的函数,那么就是绘制使用依赖关系的情况。
【讨论】: