1

嘿,我是制作类图的新手,我被分配为我的团队将要开发的健身计划制作一个简单的类图。

我擅长制作类和属性。我对它的关系部分、聚合和所有这些好东西都有问题。

这是一个简单的总结:有一个培训师,每个培训师都有一个客户。每个客户都有一份前后报告。此外,每个客户都有一个每日锻炼团、每周处方和日志。

我已经添加了我已经拥有的草稿的图像。

类图

4

1 回答 1

1

首先,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) 的类)上述场景对于和



之间的关系是正确的。ClientWeeklyPrescriptionLogs

于 2013-10-24T08:55:59.053 回答