在UML复合结构图中:什么是“端口”?我将如何实现一个,比如Java?
答案 0 :(得分:6)
我会提出,在像Java这样的OO语言中,复合结构图所使用的端口概念(通常)实际上是在调用后通过包含对象调用成员对象的方法实现的包含对象的方法。
这有点像 Facade 或 Delegation 模式,除了包含对象实际上必须“拥有”成员对象。
有关多种语言的示例实现,请参阅Delegation WikiPedia文章。
要回答问题的第一部分,请参阅UML用户手册(第2版)(诚然与组件有关):
端口是封装组件的显式窗口。在封装中 组件,进出组件的所有交互都通过端口。组件的外部可见行为是其端口的总和,不多也不少。此外,端口具有标识。
...来自UML的蒸馏(第3版):
端口允许您将所需和提供的接口分组到组件与外部世界的逻辑交互中。
答案 1 :(得分:2)
端口是系统与其他系统(模型外部)的连接。 http://en.wikipedia.org/wiki/Composite_structure_diagram
完全开放如何以及使用哪种技术实现端口。 XML Web Service将是一个可用于实现端口的技术示例。
答案 2 :(得分:1)
我认为没有java到复合结构图的映射。 通常类图到java映射(例如代码生成),用于创建应用程序的框架,序列图到java,用于反转方法流程。
除了所有其他参加者都是研究项目。 Omondo参与创建了一个类的复合结构图,但该端口在项目中没有与java相同的。
答案 3 :(得分:1)
当一些外部组件需要通过端口使用其提供的接口为组件提供服务时,端口将责任委托给特定内部组件的部分,如Facade或Delegation模式,但当组件部分需要使用所需接口的某些服务时,端口的行为是什么通过端口,任何一个端口的行为都像存根或以其他方式?