由于我还没有完全理解组件图中端口和接口符号的正确用法,所以有几个问题:
予。 想象一下,希望通过网络(TCP)使用非常特殊的远程记录器服务的软件。消息可以是一些XML。因此,记录器公开了一个接口,该接口指定握手,XML结构,XML元素等内容,以便记录器接受消息。
a)我是否认为此接口可能被称为“ILoggerProtocol”,端口可能以它提供的服务命名(“日志记录”)?
b)因此,我的应用程序中的组件实现了该接口,以便为服务器生成兼容的消息?
c)现在一个有趣的事情:对于通信,有一个额外的库“网络”提供简单的TCP东西,所以它做TCP连接,发送消息,处理错误等。我只需要这个类想强调从生成的消息到服务器的方式?那么MY端口是TCP接口吗?d)当我想绘制完整的图片时,如何正确地将网络组件添加到图表中,指出使用ILoggerProtocol并通过网络组件通过TCP?
II。我的应用程序中的端口:现在有两个库,其中一个只使用另一个;基本上,在C / C ++中,它会#include对方的头文件:
e)这是正确的图表吗?
f)我需要端口吗?如果是的话,它们实际上代表什么呢?你会给他们什么名字?
g)或者棒棒糖在没有端口符号的情况下是否足够?
III。关于棒棒糖:
h)那两个符号基本相同且可以互换吗?我已经为组合版本找到了名称“assembly”,所以可能存在差异......
答案 0 :(得分:6)
首先简短回答(稍后试图破解其余部分):端口是一个嵌入式元素,允许对多个接口进行分组。我能举出一个最好的例子就是一个复杂的插座(端口),它捆绑了电源,通信线路等名称(接口)。
现在了解详情。
a)是的,这是正确的。您通常会使用<<delegate>>
原型关联来显示在内部某处使用外部接口(/如果它是棒棒糖)。
b)否。这是必需的界面。它在内部使用但在外面实现(棒棒糖所在的地方)。
c&amp; d)我会使用<<use>>
MyApplication
向Networking
展示<<use>>
。通常你不会详细说明(除非它是必不可少的)。使用<<include>>
e)您可以(/应该)使用<<use>>
或<<delegate>>
代替。
f&amp; g)见上面的一般答案
h)是的。第一个是第二个灵活的符号。
P.S。再看看这个,我注意到在顶部图片中,内部定向关联应该指向另一个方向并且是刻板的foo
bar
Tests run: 729, Failures: 0, Errors: 253, Skipped: 0
baz
。