3

我正在开发一个在线网络商店。这是一个简单的网络商店,我必须为该类创建域 UML 图并显示多重性。我对我提出的多样性感到有点困惑。我不知道如何区分组合、聚合和关联。下面是我想出的图表。有人能告诉我我是否走在正确的轨道上吗?

http://i.imgur.com/8FwhsaI.jpg

4

2 回答 2

3

还不错。除非您需要处理数据库设计中的内存管理或外键约束,否则您不应该过多地关注聚合。让他们离开。

您应该进行的一项重要更改是关联的角色名称。例如,不是shippingAddress:Address声明为属性,而是使用shippingAddress出现在关联附近的角色Address来自User(其他角色等)。

由于Address这是一个常见的地方并且到处都在使用,你可以将这个类从这个图表中删除,并Address在中间制作一个单独的图表,所有其他使用它的人都围绕它。

于 2016-11-10T22:40:04.733 回答
0

我同意 Thomas 的观点,但我会展示其他观点,以便您调整图表。请不要将其视为具有破坏性的东西。我只是相信这些技巧可以帮助你。

  • 显示每个连接的多重性
  • 不要使用 getter 和 setter *
  • 不要使用 ID 的属性 *
  • Order 与 User 组成(没有意义与用户相关的订单,OrderLine 与 Order 组成;
  • Product 与 OrderLine 进行聚合,Review 与 Product 进行组合;
  • 制造商与产品进行聚合。(取决于您的系统,它可以是一个组合,但它更有可能是一个聚合)。

记住(部分)用(整体)做某事

  • 如果您与该类有联系,则不需要在该类中创建属性,除非您有它的列表,(例如1:Payment中的属性CreditPayment和Class CreditPayment);
  • 您可以按顺序制作产品清单。在此之后,您可以删除 Orderline 类。

*如果您不会从模型生成代码。

于 2016-12-07T06:55:59.907 回答