嘿,我是制作类图的新手,我被分配为我的团队将要开发的健身计划制作一个简单的类图。
我很擅长制作类和属性。我对它的关系部分,聚合和所有好东西都有问题。
这是一个简单的运行: 有一个培训师,每个培训师都有一个客户。每个客户都有一个前后报告。每个客户还有每日锻炼团,每周处方和日志。
我添加了一张我已经草稿的草稿图片。
答案 0 :(得分:1)
首先客户和培训师之间没有任何特定的属性来建立关系,关联是可以的,但没有任何方法可以从培训师那里找到客户,反之亦然。
你可能需要通过提出一些问题来理解和使用成员之间的关系
让我们从培训师开始。
的 Trainer
强>
Q:
您是否通过其培训师找到了客户,反之亦然?
A[0]:
客户是由其培训师(培训师 - >客户)发现的=>所以在这种情况下,您需要在培训师中跟踪(拥有)客户参考
A[1]:
培训师由其客户(客户 - >培训师)发现
A[2]:
培训师和客户都应该互相参考
关于(之前/之后)报告和客户的上述情况是正确的。
的 DailyWorkoutSheet
强>
所以这里每个客户都有超过1个锻炼表,所以这里我们有聚合和成分,差异并不是很难理解。
Composition:
表示Client
列表中包含DailyWorkoutSheet
,DailyWorkoutSheet
的生命周期为 DEPENDENTS {1}}生命周期,这意味着如果Client
被删除(从内存中删除),那么这将导致删除与Client
相关联的DailyWorkoutSheet
的所有引用参考。
(构图形状为FILLED钻石,指向主持人(Client
))的主人(client
)的类别
DailyWorkoutSheet
表示Aggregation:
列表中包含Client
,DailyWorkoutSheet
的生命周期为 INDEPENDENTS { {1}}生命周期。这意味着删除DailyWorkoutSheet
引用后,与Client
引用相关联的Client
将保持不变。
(聚合形状是一个EMPTY钻石,指向主持人(DaileyWorkoutSheet
))(<{1}}))的类别
关于Client
与client
和DailyWorkoutSheet
之间的关系,上述情况属实。