我有一个A类,它有B类和C类的数据成员,它们是组合关系。当我要绘制从B到A和C到A的构图关系线时,这是否意味着我不能在A"框"中包含数据成员。因为关系是从构图关系线推断的?
我问,因为数据成员变量名称似乎是一种帮助理解上下文的好方法,如果省略类A"框" ??
中的数据成员,则无法表示我不确定UML中是否存在铸铁规则或者我是否可以自由选择。这不是自动生成代码 - 只是人类阅读。
答案 0 :(得分:1)
至少,在UML中,您可以显示每个属性的名称,如下图所示。
答案 1 :(得分:0)
根据UML规范,数据成员的两种表示,两个类之间的可视化描述的关联/组合或类内数据成员显示)都是等效的。这是一个例子(稍微修改一下你的情况,以便更清楚):
请注意,关联结束时还会显示范围和集合类型(当然还有名称)。 col_B定义为私有{ordered}集合(如数组)。
所以,回到UML规范的正式方面...... a,x,aa,col_b和m_c都被称为A 结构特征(或属性强>)。它们都可以使用类之间的关系或类本身内部的视觉描绘。你甚至可以展示" int"数据类型作为类并使用合成链接它!
您将使用哪种方式取决于您,这是个人品味的问题。
我总是应用一个简单的规则 - 基本数据类型(int,boolean,date,string等),它们的数组在类本身中显示,而基于类和枚举的属性由关系描述(示例在顶部)。
由于简单的数据类型是清晰且众所周知的,并且没有自己的属性,我发现它足够清晰,可以在课堂上显示它们(图表更简单,更小)。
复杂的数据类型(类和枚举)通常有自己的属性(数据成员,关联),甚至是继承,我想让我的diagarm中的类结构脱颖而出。
你可以使用自己的逻辑。
答案 2 :(得分:0)
在类图中,您无法对显示关联和属性的相同组合进行建模,因为在UML语义中,这意味着您的类具有两个组合: - )
如果您的图表中已经有B和C类,我建议您选择关联(“关系线”)解决方案。
为了更好地理解上下文,您可以将角色放在关联上:这相当于属性的名称。