我的学校老师和我正在争论如何为两个班级之间的关系写出正确的基数:
Customer ----places->---- Order
所以练习告诉我,一个客户有0 - x订单,一个订单总是属于一个特定客户。所以我的想法是:
Customer -1---places->---*- Order
我的老师解决方案:
Customer -1..*---places->---*- Order
那么,您如何看待它?我希望,我是对的:)
答案 0 :(得分:2)
第一个是正确的。 0 .. *或简称*仅接近Order类。 1..1,或简称为1,紧挨着Customer类。
您确定您的老师指定了UML吗?
答案 1 :(得分:0)
你是对的。
您所描述的1:n关系,状态,1客户放置0..n订单。可能有没有订单的客户,但如果有订单,则有一个客户。一个订单必须有1个且只有1个客户。这对我来说完全有意义。
1..n:?解决方案在各方面都被打破。首先,订单方没有基数。但是没有通过specfication定义的默认值。当然,图表不必包含基数,但图表也只是模型的视图。如果您将基数保留在其他地方而不提及它的未定义。此外,1..n基数表明订单已由1个或更多客户下达。假设练习涉及一些现实世界的问题,这对我来说似乎毫无意义。
答案 2 :(得分:0)
好消息:你是对的!你的第一个想法是正确和明确的。祝贺你!
你老师的答案是正确但不完整的,因为它留下了未定义的多样性。如果他坚持辩论,那么ultimate reference声称你的权利;-)
UML 2.5 - 第11.5.4节:
其他各种符号可以放在行尾附近 如下:
•多重性•A 用花括号括起来,在哪里 在物业中定义(见9.5.4)。
•符号 注意:如果图中没有显示多重性,则无法得出结论 关于模型中的多重性。