端口

在组合结构图中,端口用于定义类元实例与其环境之间或者类元行为与其内部部件之间的交互点。

因为外部环境与内部部件之间的所有交互必须通过一个端口来实现,所以可使用一个端口来将对象的内部部件与其环境之间分隔开。连接器将类元的端口与属性链接起来并且调用两个或多个实例之间的通信。可以为一个类元定义多个端口,以根据启动交互的端口来显示不同的交互。

如下图所示,一个端口在图框中显示为一个包含该端口的名称的小正方形。

图框中显示了三个部件:两个以类元 Wheel 作为类型的部件,一个以类元 Engine 作为类型的部件。一条连接直线将
Engine 部件连接至一个类型为 Car 的小正方形端口,该小正方形显示在组合结构图的外部边框上。该连接线有一个开口箭头指向 Car 端口。两个 Wheel 部件都通过一条直线连接至一个类型为 Engine 的小正方形端口。

可以将端口添加至组合结构图的边框上和内部部件中。在以上示例中,代理连接器将外部结构部分上的 Port:Car 端口链接至名为 e:Engine 的内部部件。一个组装连接器将两个内部部件 front:Wheel[2] 和 rear:Wheel[2] 链接至名为 Port:Engine 的内部端口。

一个端口可以从两个方向进行交互,并且您可以添加必需接口和提供的接口以指定类元与其环境之间可以进行的交互类型。

如下图所示,端口是类元与其环境之间的交互点,并且它可以将任意数目的必需接口和提供的接口集中到类元可以与外界执行的逻辑交互中。

图框中显示了一个部件和两个端口。类型为 Seat 的部件显示在图框中。一个小正方形端口出现在该部件的左上角,并且有一个圆通过一条很短的直线与该端口的顶部相连。该圆是一个标有 SafetyDevice 的提供的接口。在组合结构图的外边框上有一个小正方形端口,它通过一条实线连接至该端口底部的半圆。该半圆是一个标有 Gasoline 的必需接口。

在上面的示例中,Car 类元有两个端口。外部端口 Engine:PowerGenerator 有一个必需接口 Gasoline,Car 类需要通过它才能让汽车行驶。内部端口 DriverSeatbelt:Seatbelt 有一个提供的接口 SafetyDevice,Car 类提供它以供驾驶员驾驶汽车。

可以使用端口的 isService 属性来更改它在组合结构图中的位置。如果 isService 属性设置为 true,那么端口将出现在组合结构图的边框上,表示该端口是它的环境所必需的。如果将该属性设置为 false,那么该端口将移入结构部分,表示该端口仅用于类元的内部实现并且不是它的环境所必需的。当 isService 属性设置为 false 时,可以删除或修改该端口而不会影响类元的使用。

相关任务
对组合结构图添加端口
在组合结构图中连接部件和端口
对建模图添加接口
对端口定义必需接口和提供的接口

反馈