我知道如果一个组件是另一个组件的“一部分”,那么它就是一个聚合,这让我相信“贷款”是贷款数据库的“一部分”。但是,如果没有贷款,贷款数据库就不可能存在 - 这让我相信它可能只是一个关联。
感谢任何帮助,我已经查看了这些:
uml-association-vs-composition-and-detail-level
What is the difference between association, aggregation and composition?
请您参考如下方法:
我不知道你认为贷款数据库应该是什么。但是任何数据库都可以存在,即使它根本没有内容。去创建一个任意数据库。你可以这样做。它没有数据——也没有结构。您首先要做的是创建结构(例如贷款结构)。只有这样,您才能将单个元素(行或贷款条目)添加到您的数据库中。
一般来说,你根本不应该太在意构图。它确实不会为您的模型添加太多语义。在存在安全问题(必须删除相关数据)或内存管理很重要的情况下,复合聚合很有意义。我想说共享聚合甚至是邪恶的,因为它没有固定定义的语义。 UML 规范明确指出您需要在使用它之前在您的域中定义语义。
tl;dr; 不要使用组合并专注于正确的关联,最好是具有正确的多重性,如果可能的话还有好的角色名称。