11.3.4 表示法

被封装分类符的端口表示为一个小方块符号。端口的名称靠近该符号。端口符号可以与指示被封装分类符的矩形符号的边界重叠放置,也可以显示在矩形符号内部。当端口被连接到被封装分类符的一个格间所包含的可视元素(例如内部结构格间中的部分角色)上时,端口符号必须放置于格局边界内或与之重叠。

端口的类型可以在端口名称之后显示,用冒号(“:”)分隔。当端口的isConjugated为真时,在端口的类型前要显示一个波浪线“~”。提供接口可以用附加到端口上棒棒糖图示(参见10.4 接口)来表示。需求接口可以使用附加到端口上的插座图示来表示。

行为端口可以通过把该端口通过直线连接到被封装分类符内的一个小的状态符号上来指示。这个小的状态符号指示被封装分类符的行为。

端口的名称可以被抑制。每一个未命名的端口都是一个区别于其它端口的一个不同端口。

如果一个端口上有多个关联的接口,这些接口可以列举在一个棒棒糖图标上,用逗号分隔。

当一个依赖是从一个带有需求接口的简单端口到一个带有提供接口的简单端口时,可以使用依赖箭头来连接插座和棒棒糖。

11.3.5 示例

图11.11展示了端口的图示。顶部的树是类PowerTrain的定义,它实现了IPowerTrain接口,并且使用了IFeedback接口。

在左下图中,p是类Engine上的一个端口,它的类型是TowerTrain。因此,端口p的提供接口是IPowerTrain,需求接口是IFeedback。p的multiplicity是1,并且isConjugated为假。在右下图中,e是类Wheel上的一个端口,它的类型也是PowerTrain,并且isConjugated为真,这导致了提供和需求接口的倒置。

图11.11 Port notation

图11.12展示了一个行为端口p,因为它连接到了一个代表Engine类的行为的小状态符号上。它的类型是PowerTrain,和之前的示例一样。

图11.12 Behavior Port notation

图11.13展示了类OrderProcess上的OnlineServices端口,它有两个提供接口OrderEntry和Tracking,它们列举在相同的接口棒棒糖上,以及一个需求接口Payment。

图11.13 Port notation showing multiple provided Interfaces

图11.14 Port examples

图11.14展示了一个类Engine,它有一个端口p,类型是它的提供接口IPowerTrain。这个接口个uiding了Engine在这个端口所提供的服务(即,通过该端口的通信可访问到的操作和Receptions)。

类Engine的两个使用也被描绘:Boat和Car都包含一个Engine部分。类Car通过axle把Engine的端口p连接到一对儿Wheels。类Boat通过shaft把Engine的端口p连接到一个Propeller。只要Engine和链接到端口p部分之间的交互遵循它的接口所规定的约束,那么Engine就会提供规定的功能,不管它是在一个Car内还是Boat内。这个例子也展示了连接器不必通过端口(在类Car中显示)附加到部分

因为这里的端口是简单的,Boat中的连接器的展示可以使用任意的图11.4中的表示选项。

results matching ""

    No results matching ""