11.7.4 表示法

协作表示为一个包含协作名称的虚线椭圆。由协作角色和连接器所组成的协助内部结构可以在虚线椭圆内的一个格间来显示。该格间遵循普通分类符矩形的内部结构格间的表示规约。

还可以使用组合结构图,或者是带有«collaboration»关键字的普通分类符矩形。

对于协作角色不是属性的协助没有定义表示法。

可以使用另一种属性图示,从协作的椭圆形状引一条线连接到代表协助的属性类型的分类符矩形上。每条线用属性的名称来标注。采用这种方式,模型图可以展示协作的定义,同时还有该定义中协作角色的类型分类符。

协作使用通过一个包含出现(occurrence)、一个冒号和协作类型的名称的虚线椭圆来在上下文分类符的一个内部结构格间中进行标示。对于每一个角色绑定,都有一条从椭圆到客户元素的虚线;虚线在客户端使用提供者元素的名称来标注。在这种表示中上下文分类符中作为绑定必须存在的连接器可以被抑制。

用于协作使用的一个可选的图示是作为一个从使用分类符指向被使用的协助的、带有«occurrence»关键字的一个虚线箭头。与此同时,角色绑定被表示为一般的依赖箭头。采用这种表示,在上下文分类符中作为绑定而必须存在的连接器应该显示出来。

11.7.5 示例

图11.50展示了名为Observer的协助的内部结构,它有两个部分,它们是名为subject和observer的协作角色

图11.50 The internal structure of the Observer Collaboration

图11.51展示了Observer协作部分定义的另一种图示,它表示了类CallQueue和SlidingBarIcon的细节。任意扮演subject协做角色的实例必须拥有CallQueue规定的属性,对于observer协作角色也是类似。该例还展示了Observer上的一个约束。

图11.51 Alternative notation for the parts of the Observer Collaboration.

下面的例子展示了两个协作,Sale(图11.52)和BrokeredSale(图11.53)。在BrokeredSale定义中,Sale作为部分被应用了两次。Sale中有两个协作角色(即部分),一个seller和一个buyer。可以给Sale附加一个交互或其它的行为规约来规定完成一个Sale所涉及的步骤。

图11.52 The Sale Collaboration

BrokeredSale有三个协作角色,一个producer,一个broker和一个consumer。BrokeredSale的规约展示了它包含Sale协作的两个协作使用,由虚线椭圆所指示。wholesale的出现指示了一个Sale,其中producer是seller,broker是buyer。retail的出现指示了一个Sale,其中broker是seller,consumer是buyer。sellers和buyers之间的连接器在这两个出现中没有显示;这些连接器在BrokeredSale协作中必须作为Sale定义的连接器而存在。BrokeredSale协作自身可以用作一个更大的协助的部分。

图11.53 The BrokeredSale Collaboration

图11.54使用可选的«occurrence»图示来展示了BrokeredSale协作的一部分。

图11.54 A subset of the BrokeredSale Collaboration using «occurrence» and Dependency arrows

results matching ""

    No results matching ""