嘿,我是制作类图的新手,我被分配为我的团队将要开发的健身计划制作一个简单的类图。
我擅长制作类和属性。我对它的关系部分、聚合和所有这些好东西都有问题。
这是一个简单的总结:有一个培训师,每个培训师都有一个客户。每个客户都有一份前后报告。此外,每个客户都有一个每日锻炼团、每周处方和日志。
我已经添加了我已经拥有的草稿的图像。
嘿,我是制作类图的新手,我被分配为我的团队将要开发的健身计划制作一个简单的类图。
我擅长制作类和属性。我对它的关系部分、聚合和所有这些好东西都有问题。
这是一个简单的总结:有一个培训师,每个培训师都有一个客户。每个客户都有一份前后报告。此外,每个客户都有一个每日锻炼团、每周处方和日志。
我已经添加了我已经拥有的草稿的图像。
首先,client 和 trainer 之间没有任何特定的属性来建立关系,关联是可以的,但是没有任何方法可以从 trainer 中找到 client,反之亦然。
您可能需要通过提出一些问题来了解和使用成员之间的关系。
所以让我们从教练开始。您是通过培训师找到客户还是反之亦然?客户是由其培训师 (trainer->client) => 找到的,因此在这种情况下,您需要在培训师内跟踪(拥有)客户参考。培训师是由其客户(客户->培训师)找到的,培训师和客户都应该有彼此
的参考,上述情况对于(之后/之前)报告和客户是正确的。
Trainer
Q:
A[0]:
A[1]:
A[2]:
DailyWorkoutSheet
所以这里每个客户都有不止一张锻炼表,所以这里我们有聚合和组合,区别并不难理解。
Composition:
这意味着Client
有一个列表DailyWorkoutSheet
并且生命周期DailyWorkoutSheet
取决于生命Client
周期,这意味着如果Client
删除(从内存中删除),那么这将导致删除与引用DailyWorkoutSheet
相关联的所有Client
引用。
(组合形状是一个填充的菱形,指向哪个主机(client
)客人(DailyWorkoutSheet
)的类)
Aggregation:
它意味着Client
有一个列表DailyWorkoutSheet
并且生命周期DailyWorkoutSheet
是独立的Client
生命周期。所以这意味着删除Client
引用后,与引用DaileyWorkoutSheet
关联的(s)Client
将持续存在。
(聚合形状是一个空的菱形,它指向 host( client
) 和 guest( DailyWorkoutSheet
) 的类)上述场景对于和
之间的关系是正确的。Client
WeeklyPrescription
Logs