不同类之间的线在UML图中交叉是不好的做法吗?这是设计的味道吗?这是否表明您的类过于纠结或独立或其他什么?它总是/通常是不可避免的吗?还是我想得太多了?
如果感兴趣,这是我当前的UML图。你会看到我在所有地方都布线了几行,以避免重叠……

发布于 2017-01-20 17:57:12
不同类之间的线交叉是不好的做法吗
是的,因为它会阻碍对图形/图表的理解。
它总是/通常不可避免吗?
并不是所有的图都是平面的(参见平面性测试),所以有时它是不可避免的。
但是问题并不像“我会把线路绕过来”那么简单。有许多规则和建议可以构成良好的布局或有助于良好的视觉美学;仅举几个例子:
线条交叉(您可能在某些图中看到了一座小桥,当线条是线条折弯的时候)(通常应该向上绘制继承线条( crossing)
)
您已经可以看到一些规则是相互竞争的;因此布局始终是一种平衡行为。如果你对更多细节感兴趣,我建议你在谷歌上搜索“图形美学”或“自动(图形)布局”。
不幸的是,我的大多数研究论文都在paywall后面,所以我无法链接到pdfs,但其中一些可以在谷歌上找到;例如UML Diagram Layouting: the State of the Art或Aesthetics of Class Diagrams
发布于 2017-01-20 17:56:22
在我看来,线交叉可能是不可避免的,但通常,当我试图用一张图显示太多的东西时,就会发生这种情况。我认为这是一种“交流”的味道,而不是设计的味道。
我经常发现,明确地写下我试图回答的问题有助于发现不是严格必要的、我应该省略的模型元素。此外,几个图表可能比一个饱和的图表更好地传达一个想法/设计。
在你的例子中,你可以按照你已经识别的彩色区域来分解你的图表。
发布于 2017-01-20 18:50:40
当有交叉线的时候,这是一个很好的时机,可以停下来思考一下图是否变得太复杂了。
我觉得你的图表试图同时做到抽象和具体。我认为它太复杂了。它是抽象的,因为它提供了架构概述,而具体的,因为它显示了与实现相关的结构细节。
就我个人而言,我可能会将您的图表拆分成一个组件图表;然后使用单独的类图来表达每个组件的结构。
https://stackoverflow.com/questions/41756413
复制相似问题