根据 UML 规范,我们可以通过<<Create>>或<<Instantiate>>构造型来表示两个类之间的依赖关系。
你知道这些刻板印象之间有什么区别吗?
它是用 UML 规范 2.5(第 22.3 章标准构造型)编写的:
为了<<Create>>
使用依赖性表示客户端分类器创建供应商分类器的实例
为了<<Instantiate>>
分类器之间的使用依赖性表明客户端上的操作创建供应商的实例
我注意到 << Create >> 构造型不仅可以应用于“Usage”依赖项,还可以应用于“BehavioralFeature”(参见 UML 规范中的第 22.2 节)。
在 UML 中,“BehavioralFeature”对应于类或接口中的特定方法。
因此,如果我们用 << Create >> 或 << Destroy >> 标记类中的特定方法,我们的意思是它创建/销毁该类的实例。
我们可以将使用 << Create >> 标记方法与使用 << Create >> 标记使用依赖项进行类比。
如果我们用 << Create >> 标记使用依赖关系,则这意味着客户端类中的特定方法创建供应商类的实例。因此,我们在客户类的主体中创建了一个Supplier的实例。客户和供应商在这里紧密耦合。
另一方面,如果我们用 << Instantiate >> 标记使用依赖关系,则 Client 类将Supplier 的创建委托给其他对象。因此,他间接创建了供应商。在这种情况下,客户和供应商是松散耦合的。例如,如果我们通过创建模式之一创建供应商,就会发生这种情况:对象池、原型、工厂方法等。
笔记:
总的来说,与规范的差异并不是很清楚。希望在它的未来版本(2.5以上版本)中我们有更清晰的定义。
| 归档时间: |
|
| 查看次数: |
7787 次 |
| 最近记录: |