&引用;创建;vs";实例化;UML中的依赖关系

&引用;创建;vs";实例化;UML中的依赖关系,uml,Uml,根据UML规范,我们可以通过或原型来表示两个类之间的依赖关系 你知道这些刻板印象有什么不同吗 它是在UML规范2.5(第22.3章标准原型)中编写的: 对于 表示客户端分类器创建的使用依赖项 供应商分类器实例 对于 分类器之间的使用依赖关系,指示 客户端创建供应商的实例 我注意到,>原型不仅可以应用于“用法”依赖项,还可以应用于 “行为特征”(参见UML规范第22.2节) 在UML中,“BehavioralFeature”对应于类或接口中的特定方法 因此,如果我们用>或>标记类中的特定方法

根据UML规范,我们可以通过
原型来表示两个类之间的依赖关系

你知道这些刻板印象有什么不同吗

它是在UML规范2.5(第22.3章标准原型)中编写的:

  • 对于

    表示客户端分类器创建的使用依赖项 供应商分类器实例

  • 对于

    分类器之间的使用依赖关系,指示 客户端创建供应商的实例

  • 我注意到,>原型不仅可以应用于“用法”依赖项,还可以应用于 “行为特征”(参见UML规范第22.2节)

    在UML中,“BehavioralFeature”对应于类或接口中的特定方法

    因此,如果我们用>或>标记类中的特定方法 我们的意思是它创建/销毁此类的实例

    我们可以用> 并使用>标记使用依赖项

    如果我们用>标记使用依赖项,那么 这意味着客户机类中的特定方法将创建供应商类的实例。 因此,我们在客户端类的主体中创建了一个Supplier实例。 客户和供应商在这里是紧密耦合的

    另一方面,如果我们用>标记使用依赖项,那么 客户端类将供应商的创建委托给其他对象。 因此,他间接地创造了供应商。 在这种情况下,客户和供应商是紧密耦合的。 例如,如果我们通过创建模式之一创建供应商,就会发生这种情况:对象池、原型、工厂方法等

    注:

    总的来说,与规范的区别不是很清楚。 希望在未来的版本中(超过2.5版),我们有更清晰的定义。

    Michael Jesse Chonoles 是的,«创建»用于序列图。这是对信息的刻板印象。«Create»也是分类器中行为特征的原型,表示该分类器是该分类器实例的构造函数(或非面向对象项的等效项)

    当«创建»用于依赖项时,它与«实例化»似乎没有太大区别。就我个人而言,我使用依赖项«实例化»。我指的是通过调用构造函数实现的真正的面向对象实例化(这就是我将模型转换为代码的方式)。当“创建”是一种不同类型的创建时,我会使用“创建”,无论是更间接的、概念性的还是非面向对象的特性

    这里有一些例子。我会用«创建»来表示MSWord-->«创建»一个文档,一个建模师«创建»一个模型。虽然我通常不会对此进行详细建模,但我会使用«创建»来表示组件«创建»新数据库记录、数据库管理器«创建»新数据库、程序员«创建»新应用程序。或者在(非oo)数组中创建新元素。这些可以在不直接调用传统的面向对象构造函数的情况下发生,并且不能直接转换为代码

    另一方面,如果我对一个人进行了一次婚姻操作,它可能会“实例化”婚姻的关联类对象


    因为我的大多数建模都是概念性的,在实践中,我倾向于使用«create»。尽管如此,它也不会经常出现。

    指导我使用SyML/UML的人已经在大型公司用SyML/UML进行了多年的MSBE

    我问他如何画一张图表,显示:

    “系统引导进程”加载(从ROM)并运行“系统主进程/应用程序”

    他说我应该使用«创建»使用依赖项

    在我看来:

    • 您可以使用«Create»来显示一个进程运行“大”的东西,比如 启动整个外部流程/软件项/应用程序

    • 您可以使用«实例化»来显示给定流程中的代码 段实例化从类“创建”对象实例 定义


    我不会把所有的UML定义放在黄金余额上。对我来说,这两个定义听起来非常相似。从我的理解来看,类似于(上帝的)创造物,所以有些新的东西。相比之下,它更像一个克隆操作。YMMV这是你对这些事情的解释,还是你有一个来源证实了这个观点?这是我自己基于UML规范的分析