在UML复合结构图中:什么是“端口”?我怎样才能在Java中实现一个呢?在UML复合结构图中定义“端口”的概念
6
A
回答
2
端口是系统与其他系统(模型外部)的连接。 http://en.wikipedia.org/wiki/Composite_structure_diagram
它是完全开放的如何以及与哪个技术实现一个端口。 XML Web Service将是一个可用于实现端口的技术示例。
1
我不认为有一个Java复合结构图的映射。 通常将类图转换为java映射(例如代码生成),用于创建应用程序的框架以及将序列图转换为java以反转方法流程。
除了所有其他参加研究项目。 Omondo已经参加了从一个班级创建复合结构图的过程,但是该项目没有与Java相同的项目。
6
我会提出,在像Java这样的OO语言中,复合结构图所使用的端口概念实际上被实现为调用后由包含对象调用成员对象的方法在包含对象的方法上。
这有点像Facade或Delegation图案,不同之处在于含有对象实际上必须“自己”的成员对象。
请参阅Delegation WikiPedia文章,了解多种语言的示例实现。
为了回答这个问题的第一部分,从UML用户手册(第二版)(诚然相对于成分):
端口是一个明确的窗口成封装组件。在封装的组件中,所有进入和离开组件的交互都通过端口。组件的外部可见行为是其端口的总和,不多也不少。另外,一个港口有身份。
...从UML精粹(第3版):
端口让您组要求和提供的接口成组件具有与外部世界的互动逻辑。
1
当一个组件一些外部组件所需的服务,通过端口使用其提供的接口,然后端口责任委托给特定的内部组件的一部分像门面或委派模式,但会出现什么端口的行为,当组件的部分需要服务使用通过端口所需的接口,任一端口的行为都像存根或其他方式?