个体关系(instantiate dependency)扩充了使用关系(usage dependency),如图1所示。
图1: 个体
我们先来复习一下使用关系:在使用关系中的客户端,为了自身的实作(implementation)或操作(operation)的完整性,因此需要使用支持端。以图2为例,这是UML规格书里头的范例,订购(order)类别与订购细项(line item)类别之间有使用关系,意指订购需要使用到订购细项。
一般而言,订购细项中可能会记载欲购买的商品数量,而且可能也会记载商品售价,或者是连接到相关的商品。一旦订购需要执行计价的操作时,就会需要使用到订购细项的数量、售价等信息。
[ex]图2: 使用关系(use dependency)
还有,类别和接口之间,也是使用关系,如图3所示。我们常见到USB接口的鼠标,像这类的鼠标就会需要使用USB接口,来连接计算机主机。针对这个情况,我们可以为两者建立使用关系,让鼠标(mouse)类别使用USB接口。
图3: 接口
现在,我们再回过头来看个体关系。在个体关系中的客户端,将诞生支持端的个体,因此它会需要使用到支持端。以图4为例,订购(order)类别里有一个名为「新增次项」(create line item)的操作,它可以诞生次项(line item)个体,所以两类别之间可以有个体关系。
图4: 个体关系的范例
再来看另一个在UML规格书里面出现的范例,汽车(car)类别依赖运载工具型别(vehicle type)类别,而且它是「个体关系」(instantiate dependency),意指汽车类别里的操作可以诞生运载工具型别的个体,如图5所示。
[ex]图5: 个体关系
特别需要注意的是,个体关系发生在两个类词之间,而非类词与个体之间。譬如图6的情况,就是个常见的错误,误将个体关系设置在类别与个体之间。类别是最常见的一种类词。
图6: 这是个错误范例
发表于 @ 2008年03月24日 12:08:00|评论(loading...)|编辑