- uml/
- &引用;创建;vs";实例化;UML中的依赖关系
&引用;创建;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规范的分析