如何在UML中可视化协议和扩展?

bam*_*ter 8 uml swift swift-protocols

使用UML接口在UML中可视化Swift协议似乎是合理的.但是,我应该如何可视化为特定协议提供默认实现的扩展?我应该只使用<<extension>>ProtocolName继承自该协议的类吗?

qwe*_*_so 6

扩展存在于某个类的范围内,只是为其添加了一些功能.所以我会将扩展名表示为子类(最终可能首选包装).为了表明它是一个扩展,我会使用刻板印象.对扩展的类的依赖性在某种程度上是可选的,因为在上下文中它是一个命名约定.

在此输入图像描述

如果扩展将另外遵守某些协议,则只需将实现关系添加到相应的接口类.

这是表达这一点的一种方式.由于扩展没有本机UML构造,因此您可以相对自由地发明自己的习语.