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中清晰地表达“谁提供了什么能力,又依赖了什么能力”。这是你用“架构即代码”理念描述系统时,必不可少的一环。
浙公网安备 33010602011771号