PlantUML中画组件以及之间的接口

在PlantUML中表示组件接口非常灵活,主要支持两种标准UML方式:“球-窝”记号和“显式接口”表示法。这里的核心思路是使用 () 语法定义接口,再用不同的连接线来表达“提供”或“需求”关系。

⚙️ 基础元素:如何定义接口

在PlantUML中,表示接口的基础语法很简洁。

  • 定义接口:通常用一对圆括号 () 来表示一个接口。为了清晰,你也可以使用 interface 关键字。
  • 添加别名:为了方便连接,可以用 as 关键字为接口定义别名。
  • 定义组件:组件可以用 [] 包裹,或使用 component 关键字。
@startuml
' 定义接口的两种方式
() "第一种方式:()" as I1
interface "第二种方式" as I2
' 定义一个组件
[订单服务] as OrderComp
@enduml

🔗 核心语法:如何连接与表示接口关系

接口的生命力在于其与组件的连接。PlantUML通过两种关系,清晰地表达出组件“提供”或“需求”某个接口的意图。

1. 组件提供接口 (Provided Interface)

如果一个组件实现了某个接口,意味着它对外提供该接口的服务,这在UML中被称为“球”或“棒棒糖”记号。

  • 语法:使用 组件名 -- 接口名 这样的关系。
  • 代码示例
    @startuml
    component "订单处理器" as Processor
    interface "I订单处理" as IOrder
    
    ' Processor 组件提供了 IOrder 这个接口
    Processor -- IOrder
    @enduml
    

2. 组件需求接口 (Required Interface)

如果一个组件需要使用其他组件提供的服务,它就“需求”一个接口,这被称为“插座”记号。

  • 语法:使用 组件名 --( 接口名。关键在于在连接线末端加一个额外的括号 (,形成一个“插座”的形状。
  • 代码示例
    @startuml
    component "订单客户端" as Client
    interface "I订单处理" as IOrder
    
    ' Client 组件需求(需要)IOrder 这个接口
    Client --( IOrder
    @enduml
    

3. 直接连接需求与提供接口 (Assembly)

这是组件图中最关键的表达:将一个组件的“插座”连接到另一个组件的“球”上,代表前者使用了后者的服务。

  • 语法:使用 需求组件名称 --( 接口名称提供组件名称 -- 接口名称,PlantUML会自动将两个连接组合起来,形成直观的“球-窝”连接。
  • 代码示例
    @startuml
    component "订单客户端" as Client
    component "订单处理器" as Processor
    interface "I订单处理" as IOrder
    
    ' 关键语法:Client需求接口,同时Processor提供接口
    Client --( IOrder
    Processor -- IOrder
    @enduml
    
    这段代码生成的图中,订单客户端的“插座”会直接连接到订单处理器的“球”上,直观地表达了依赖关系。

💎 总结

简单来说,这套语法通过 ----( 两种连接,配合 () 定义的接口,就能在PlantUML中清晰地表达“谁提供了什么能力,又依赖了什么能力”。这是你用“架构即代码”理念描述系统时,必不可少的一环。

posted on 2026-05-15 10:51  高树岭软件实验室  阅读(50)  评论(0)    收藏  举报

导航