UML-未在字段中定义时Java类之间的关系
ClassA和Classb之间的关系/关联是否有名称?ClassA没有ClassB的字段 我在Y.Daniel Liang的《Java编程导论》中读到了类关联,并使用了google,但找不到具有这种特定关系的示例 我正在绘制一些现有代码的UML图,希望得到正确的关系注释 也许我想得太多了,它只是一个关联?您的ClassB实例通过JFrame存储,因此您可以使用类关系:UML-未在字段中定义时Java类之间的关系,java,uml,Java,Uml,ClassA和Classb之间的关系/关联是否有名称?ClassA没有ClassB的字段 我在Y.Daniel Liang的《Java编程导论》中读到了类关联,并使用了google,但找不到具有这种特定关系的示例 我正在绘制一些现有代码的UML图,希望得到正确的关系注释 也许我想得太多了,它只是一个关联?您的ClassB实例通过JFrame存储,因此您可以使用类关系: 或者只需将依赖项从ClassA添加到ClassB私有属性通常被建模为单向关联(即使导航能力也可以通过自有属性以外的其他方式实现
或者只需将依赖项从ClassA添加到ClassB私有属性通常被建模为单向关联(即使导航能力也可以通过自有属性以外的其他方式实现) 源代码定义了属性
frame
,因此,应该在ClassA
和JFrame
之间建立关联模型
然后类JFrame
对ClassB
对象执行add
操作。只有当JFrame
与ClassB
有关联时,这才有意义
最后ClassA
创建ClassB
的一个新实例。这一事实可以通过«创建»关系(虚线箭头)可视化
ClassA
和ClassB
之间不存在其他关系。因为我们不知道JFrame
s属性是否私有,所以ClassA
甚至不可能访问ClassB
,即使它创建了ClassB
组合可能存在于
JFrame
和ClassB
之间,但您的源代码没有为该决定提供足够的上下文。ClassA和ClassB之间没有任何意义,因为它们甚至都没有关联,无论是通过AssociationClass还是通过正常关联。ok-说关系框架->ClassB是聚合的,对吗?顺便说一句,我无法编辑代码。@Kapalua如果我的建议不正确,其他人会给我温暖^^我根据您的代码提出了我的建议,因此您的代码与兼容,您不必更改它的版本!谢谢你的输入,但我不太明白你为什么要在ClassA和ClassB之间建立组合关系。这难道不意味着ClassA有这样一个字段:ClassB ClassB吗?@Kapalua我使用了一个组合,因为你的评论//has-a,composition
。“ClassA有一个这样的字段:ClassB ClassB”:不,框架就足够了,因为这不是一个关系,而是一个类关系,JFrame有到ClassBOk(的母类)的链接-我不知道这种建模方式。谢谢你的意见。我的想法似乎和你写的一样。谢谢你说得更清楚。
class ClassA {
private JFrame frame = new JFrame(); // has-a, composition
public ClassA()
{
frame.add(new ClassB());
}
}