类图中B类中的A类对象
Objects of class A in Class B in Class Diagram
我有一个带有自己的用户定义类的应用程序,我还使用Qt框架库来初始化内置的其他类的对象。因此,在我的类中,让我们称之为"myclass",我创建Qt内置类的实例并对其进行处理。这就完成了。。。现在,我需要为此创建类图。我想知道这可以被归类为关联、聚合、组合或泛化中的哪一个?
感谢
它不是泛化,因为您在这里没有继承,所以它不能作为"is-a"关系。
关于关联、组合或聚合。。。在这里你可以找到一个很好的解释。如果不更好地了解您的用例,就不可能说出适合您的。然而,阅读另一个链接将帮助你理解差异,并根据你的场景进行判断。
关联、聚合和组成之间的差异
希望能有所帮助。
关于UML,需要记住的重要一点是,在决定使用什么时,通常没有真正的正确或错误答案,但有些工具比其他工具更好。UML只是一种通信工具,只要以每个人都能理解通信内容的方式使用该工具,那么它就达到了目的。
对于类图,在其最基本的级别上,您实际上可以通过关联和泛化来对所有内容进行建模,但这将缺乏其他人可能希望看到的细节。
泛化与继承有一对一的关系,所以何时使用它是很清楚的。
关联描述任何与另一类有关系或依赖关系的类;这是一个很好的概括(!),这就是为什么它可以用来代替聚合和合成。
当对象(B)组成另一个对象(A)并且B可以在其他对象之间共享时,使用聚合。例如,一个图书馆由书籍组成,因此一本书可以被建模为图书馆的集合,因为其他类也可以集合一本书,比如借阅者
当一个对象(B)被直接用来组成一个对象时,请使用合成。在这种情况下,如果你对人体进行建模,并且有器官类,你会将心脏类建模为身体类的合成对象。
事实上,您使用的Qt框架与您用来为类建模的内容无关,图表不需要对所有内容进行建模,只需要对与他人交流概念所必需的内容进行建模。
例如,如果您使用的是QList和QMap等容器类,您可能甚至不希望它们出现在图中,但如果您要使用QTcpSocket并从中继承,那么最好显示出来。
请记住,这一切都是关于你试图沟通的内容。
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 构造对象的歧义
- 使用"std::unordereded_map"映射到"std::list"对象