这是我想要解决的运动问题。 客户向供应商下订单。订单适用于各种不同类型的零件;为了本练习的目的,可以忽略不同类型的平底锅之间的区别。订单由许多订单行组成;每行指定供应商目录中的特定部分,并说明要订购的部件。在响应订单时,供应商组成交货,包括所有订购的零件。在类图中描述这种情况,并在图中讨论聚合的可能用途。
第一个图是建议的答案,第二个图是我自己的答案。
Orderline
作为关联类是否合适?Order
和Delivery
类之间的关联来弥补交付是否足够?由于Order
类与Part
类相关联,因此可以检索应传递哪个部分的信息。在建议的答案中,类Part
引用目录中的Part
描述。包含交付的实际物理部分由类Item
表示。 答案 0 :(得分:2)
首先要记住,几乎没有一个正确的"建立模型的方式。 OrderLine可以被建模为Order和Part之间的关联类,因为它是关联类背后的确切想法。另一方面,由于描述明确声明Order包含OrderLines,您也可以按照这种方式将其建模为单独的类。但是在这种情况下,它应该是复合聚合而不仅仅是关联。 至于项目和部分 - 部分是目录位置(并且它应该是一个组合而不是简单的关联),而Item表示实际的可交付对象。但是在某些情况下你不会像那样对它进行建模,但你仍然必须拥有某种类型的"载体"在交货。我错过了#34;原创"图是OrderLine和Item之间的关系(关联),用于显示通过交付哪个Item来实现哪个精确的OrderLine。这样可以验证是否涵盖了所有OrderLines。