在 class 图表中显示列表中的选择
Displaying a selection from a list in a class diagram
我正在制作一个显示以下内容的图表:
Every day the student makes an order in the cafeteria, they can choose the full menu for today (for example, soup, sandwich, dessert, drink), as well as only some dishes from the menu (for example, only soup).
如何在 class 图表上显示它。这是我的图表。点菜和菜单有关系,还是点菜和菜有关系?
Should there be a relationship between the order and the menu or the order and the dishes?
如果你只有 Order 和 Menu 之间的关系,你无法知道学生不想要哪些菜,所以如果你有那个关系,你还需要另一个关系来指示(不)想要的 Meal,但是有那个额外的关系使得 Order 之间的关系菜单没用。
所以 Order 和 Meal 之间有关系,但 Order[=65] 之间没有(直接)关系=] 和 菜单.
其中:
ordersType有用吗?对其进行组合也没有意义,因为枚举项始终存在
一个Menu与几个Meal相关所以对应的重数一定是1..*
一个Pupil可以有几个Order(多重性'*')所以看起来[=的几个实例31=]Menu可以同时存在,那么一个Meal可以是几个Menu的一部分所以对应的重数一定也是1..*
。
一顿饭的价格是整数,看起来很奇怪
菜单/订单的日期是双 , 好像也很奇怪
一个Pupil的numClass是一个string,奇怪如果 num 表示数字
为了补充 Bruno 的出色回答,我想补充一下您的要求非常模糊的记录。例如:
- 学生可以带走完整的菜单和附加项目(e.g.second 甜点)吗?
- 学生可以多次免费获得同一项目的菜单吗?
- 如果在完整菜单中服用或单独服用,一件商品的价格是否相同?
是真的有单价还是菜单价为准?
- 菜单是否详细说明所包含的餐点,还是学生必须说出 he/she 想要哪种汤或三明治?
- non-full 菜单是否也由菜单实例表示(例如,是否有完整菜单、只有汤和三明治的清淡菜单等...)?
根据您的回答,对此建模的可能性有很多种。例如:
- 如果菜单只是 select 商品的一种手段,对商品价格没有任何影响,则您的订单中无需参考菜单。
- 如果菜单是无法更改的自包含产品列表,或者如果菜单是允许用户创建个性化菜单的模板,则您不需要在订单中提及均值。
- 在其他情况下,您可能需要对项目的引用和对菜单的引用(如果允许没有菜单价格条件的额外项目)
- 为了最大的灵活性,您可以根据 composite pattern 设计菜单,这允许将菜单作为一个项目(带有价格)处理,就像订单中的任何其他项目一样,尽管由几顿饭组成。请注意,虽然非常漂亮,但它增加了一些复杂性。
我正在制作一个显示以下内容的图表:
Every day the student makes an order in the cafeteria, they can choose the full menu for today (for example, soup, sandwich, dessert, drink), as well as only some dishes from the menu (for example, only soup).
如何在 class 图表上显示它。这是我的图表。点菜和菜单有关系,还是点菜和菜有关系?
Should there be a relationship between the order and the menu or the order and the dishes?
如果你只有 Order 和 Menu 之间的关系,你无法知道学生不想要哪些菜,所以如果你有那个关系,你还需要另一个关系来指示(不)想要的 Meal,但是有那个额外的关系使得 Order 之间的关系菜单没用。
所以 Order 和 Meal 之间有关系,但 Order[=65] 之间没有(直接)关系=] 和 菜单.
其中:
ordersType有用吗?对其进行组合也没有意义,因为枚举项始终存在
一个Menu与几个Meal相关所以对应的重数一定是
1..*
一个Pupil可以有几个Order(多重性'*')所以看起来[=的几个实例31=]Menu可以同时存在,那么一个Meal可以是几个Menu的一部分所以对应的重数一定也是
1..*
。一顿饭的价格是整数,看起来很奇怪
菜单/订单的日期是双 , 好像也很奇怪
一个Pupil的numClass是一个string,奇怪如果 num 表示数字
为了补充 Bruno 的出色回答,我想补充一下您的要求非常模糊的记录。例如:
- 学生可以带走完整的菜单和附加项目(e.g.second 甜点)吗?
- 学生可以多次免费获得同一项目的菜单吗?
- 如果在完整菜单中服用或单独服用,一件商品的价格是否相同? 是真的有单价还是菜单价为准?
- 菜单是否详细说明所包含的餐点,还是学生必须说出 he/she 想要哪种汤或三明治?
- non-full 菜单是否也由菜单实例表示(例如,是否有完整菜单、只有汤和三明治的清淡菜单等...)?
根据您的回答,对此建模的可能性有很多种。例如:
- 如果菜单只是 select 商品的一种手段,对商品价格没有任何影响,则您的订单中无需参考菜单。
- 如果菜单是无法更改的自包含产品列表,或者如果菜单是允许用户创建个性化菜单的模板,则您不需要在订单中提及均值。
- 在其他情况下,您可能需要对项目的引用和对菜单的引用(如果允许没有菜单价格条件的额外项目)
- 为了最大的灵活性,您可以根据 composite pattern 设计菜单,这允许将菜单作为一个项目(带有价格)处理,就像订单中的任何其他项目一样,尽管由几顿饭组成。请注意,虽然非常漂亮,但它增加了一些复杂性。