首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将整个类图放在StarUML上的包中?

如何将整个类图放在StarUML上的包中?
EN

Stack Overflow用户
提问于 2022-05-21 16:24:48
回答 1查看 72关注 0票数 2

我使用StarUML已经有一段时间了,并且一直存在这样的问题:如果您不先创建一个包,然后所有东西都在里面创建,那么您实际上首先设计了类图,然后想把它放到包中,您不能通过移动包内的所有东西来完成,因为包将覆盖类图,如下图所示:

您可以一个一个地移动每个类和关联,它会在包的顶部移动,但这是非常乏味的,特别是如果您已经组织了所有的事情,因为您需要再次这样做。我能做些什么来迅速做到这一点吗?

顺便说一句,所有东西都已经在Model中的包中移动了。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-05 15:05:01

答案是,将几个类移动到一个包中,可能已经将类分配给包,但在视觉上,包符号并没有将它们封装起来。

这里是一个4.1.6版的演示。THe版本5.0.1具有相同的行为。我创建了3个类(注意自动名称Class 1Class 2Class 3,下一个是Class 4),然后创建一个包。这里是结果;特别是查看模型资源管理器,它在相同的级别上显示类和包:

现在我可以选择这3个类并将它们拖放到包中。但是警告:在包有一些重叠之前,移动类是不够的:您真的必须将鼠标拖到包中,这样StarUML就可以向您提供带有突出显示框架的包元素的视觉反馈(在我的屏幕截图中是蓝色的):

当您释放删除鼠标时,类将通过翻译进行移动,但是包符号保持不变,给人的印象是操作失败。但是不要失望,看看模型资源管理器,您就会发现这些类现在都在包下面:

这意味着StarUML现在将类视为包的一部分。如果您移动包符号,类将跟随移动。实际上,它们的位置相对于包符号。唯一需要做的事情是调整包符号的大小,以包含掉在其中的所有类。

顺便说一句,一定有某种错误,因为如果您将包的格式更改为自动调整大小,它就会再次变得非常小,而忽略了大小确定中包含的元素。

如果您仍然不确定,您也可以右键单击其中一个类,并在菜单Format > Show namespace中进行选择

然后,您将在图表中以明文清楚地显示该包:

现在,如果在包之外添加一个新类,您将看到默认情况下,编号在1重新启动,因为在这个级别上没有其他类了。如果移动包,所有先前选择的类都会随包一起移动,但新创建的类将保持原样。

请注意,可视化和建模语义之间的差异也可能发生在另一个方向。您可以创建一个包并调整其大小,然后将类单击添加到包中。从视觉上看,这门课似乎就在包里。但是,如果您移动包,类将保持在原来的位置,并且在模型资源管理器中,您将看到与包处于同一级别的类。这可能会非常误导人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72331361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档