EA包图上嵌套的包位置不对

2024-04-21 09:52
文章标签 位置 嵌套 ea 包图

本文主要是介绍EA包图上嵌套的包位置不对,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Extreme 2024-4-11 11:36

我从工具栏把一个包拖在另一个包里面,可是项目树上两个包的位置并列,拖了几次结果都一样。我的目的是做一个多层级的包图,是不是(EA)不能在图上做?

UMLChina潘加宇

确实是这样,但这里不是EA错了。

像下图,在一个已有的包“操作性”的内部加一个新的包“1-需求”,用EA在包图上操作的话,加的时候有个提示,提示中默认这个包的上一级(可以改)是拥有这张包图的那个包,即“安全域to-be”:

因此在Project Browser文件夹中,两个包在同一层级。

但这两个包的容纳(Containment)关系是已经建立了的。

如果把“1-需求”拖到“操作性”外面,可以看到这两个包之间有一个带圈的十字,嵌套和十字的含义是相同的。

如果在Project Browser中把“1-需求”挪到“操作性”下面,此时图上“1-需求”下面会出现“from 操作性”的说明。在图上把“1-需求”挪回“操作性”内部,同样有“from 操作性”。这是因为“1-需求”此时已经不是直接被包图的所有者“安全域to-be”包含,如下图:

我用当前电脑上的其他工具尝试了类似操作。

(1)Astah(日本出产的工具,有英文界面,但这个刚好是日文的)

加上去之后,图上的包含关系和左侧的树是一致的,如下图:

把里面的“パッケージ2(package2)”拖到“パッケージ1(package1)”外面,可以看到,确实有带圈十字的包含关系:

(2)StarUML

刚加上去的时候,在文件夹上,新加的包Package3和外层的包Package2是并列的。稍微拖动一下Package3,它就很神奇地跳到了Package2下面,如下图:

把Package3拖到Package2外面,如下图,文件夹上的位置也跟着改变为同一层级,两个包之间没有带圈十字关系。也就是说,之前两个包有没有包含关系不知道,但现在肯定是没有的。

这时,从工具栏中选中Containment关系,从Package3画向Package2,随着包含关系的建立,文件夹上Package3的位置挪到了Package2的下面,如下图:

在有包含关系的情况下,在图上把Package3挪回Package2,观察文件夹的变化,再把Package3挪出来,再观察变化,所发生的变化和预期的不一样,这个地方StarUML的逻辑应该乱掉了。

**********

对比此处的操作,Astah默认让文件夹的包含和图上的包含一致(可以不一致),应该更符合心理预期。EA的操作比较特别,StarUML存在逻辑错误。

这篇关于EA包图上嵌套的包位置不对的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922782

相关文章

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

PyCharm如何更改缓存位置

《PyCharm如何更改缓存位置》:本文主要介绍PyCharm如何更改缓存位置的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm更改缓存位置1.打开PyCharm的安装编程目录2.将config、sjsystem、plugins和log的路径

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

python展开嵌套列表的多种方法

《python展开嵌套列表的多种方法》本文主要介绍了python展开嵌套列表的多种方法,包括for循环、列表推导式和sum函数三种方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、嵌套列表格式二、嵌套列表展开方法(一)for循环(1)for循环+append()(2)for循环+pyPhWiFd

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

SpringBoot嵌套事务详解及失效解决方案

《SpringBoot嵌套事务详解及失效解决方案》在复杂的业务场景中,嵌套事务可以帮助我们更加精细地控制数据的一致性,然而,在SpringBoot中,如果嵌套事务的配置不当,可能会导致事务不生效的问题... 目录什么是嵌套事务?嵌套事务失效的原因核心问题:嵌套事务的解决方案方案一:将嵌套事务方法提取到独立类