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